Swift AnyObject 변환

코더 -256

내가 가진 문제를 보여주기 위해 테스트 코드만들었습니다 .

이것은 놀이터에서 잘 컴파일되지만 프로젝트에 넣으려고 할 때 Xcode는 다음 경고를 표시합니다. Treating a forced downcast to 'String' as optional will never produce 'nil'on line 30 . 문제를 해결하기위한 두 가지 제안이 있습니다.

  1. Use 'as?' to perform a conditional downcast to 'String', 그것은 절대적으로 의미가 없습니다. 그러나 경고 / 오류없이 컴파일됩니다. 이는 선택적 값이 아닌 유형의 String.

    다운 캐스트가 성공할지 확실하지 않은 경우 유형 캐스트 ​​연산자 (as?)의 조건부 형식을 사용하십시오. 이 형식의 연산자는 항상 선택적 값을 반환하며, 다운 캐스트가 불가능한 경우 값은 nil이됩니다. 이를 통해 성공적인 다운 캐스트를 확인할 수 있습니다.

    로부터 스위프트 언어 가이드 .

    nil변환이 실패하면 할당하고 싶다고 생각하지 않는 한 (사전 항목을 제거하기 때문에) 이것은 의미가 없습니다. 특히 나는 그것이 문자 그대로 확인했기 때문에 성공할 것이라고 확신하기 때문에 String.

  2. Add parentheses around the cast to silence this warning, 이는 무의미한 것 같지만 않는 경고를 침묵. 이것은 이상한 일처럼 보이지만 다시 말하지만, 당신이하려는 일을 정말로하고 싶다는 것을 확인하는 것은 좋지 않은 방법 일 수 있습니다.


어떤 옵션이 옳거나 둘 다 옳지 않습니까? 이 경고의 원인은 무엇입니까?

마틴 R

올바른 해결책은 강제 풀기 연산자 대신 선택적 바인딩을 사용하는 것입니다 !. 실제로 수표 value != nilswitch진술에 통합 할 수 있습니다 .

for (key, value) in dict {
    switch value {
    case let s as String:
        newDict[key] = s
    case let i as Int:
        newDict[key] = String(i)
    case let b as Bool:
        newDict[key] = b ? "1" : "0"
    case let v?:   // value is not `nil`
        newDict[key] = String(v)
    default:       // value is `nil`
        break
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Swift (String : AnyObject)는 [String : AnyObject]로 변환 할 수 없습니다.

분류에서Dev

'[AnyObject]?' 'NSArray'(xcode, swift)로 변환 할 수 없습니다.

분류에서Dev

AnyObject는 Swift를 사용하여 String으로 변환 할 수 없습니다.

분류에서Dev

Swift 오류 '(AFHTTPRequestOperation ?, AnyObject?)-> () 유형의 값을 변환 할 수 없습니다.

분류에서Dev

Swift Downcasting AnyObject (Float) to String

분류에서Dev

Swift의 AnyObject 속성

분류에서Dev

Swift에서 JSON으로 Alamofire 요청 후 AnyObject에서 <AnyObject> 응답을 변환하는 방법은 무엇입니까?

분류에서Dev

NSUSerdefaults AnyObject를 변환하는 방법은 무엇입니까? SWIFT Array에 추가 할 수 있습니까?

분류에서Dev

Swift 범주 : "유형의 값을 예상되는 인수 유형 'AnyObject!'로 변환 할 수 없습니다.

분류에서Dev

Swift의 AnyObject 및 제네릭

분류에서Dev

Swift NSArray subscript a value of type AnyObject

분류에서Dev

NSDictionary 대 Swift의 [String : AnyObject]

분류에서Dev

나중에 NSTimer--Swift로 변경할 수 있도록 변수를 AnyObject로 정의하십시오.

분류에서Dev

iOS Swift : AnyObject 다운 캐스팅

분류에서Dev

Swift: NSMutableSet -> Type 'CGPoint' does not conform to protocol 'AnyObject'

분류에서Dev

swift dictionary population issue: type 'AnyObject' does not conform to protocol 'NSCopying'

분류에서Dev

How do I determine the number of rows and columns in a Swift [[AnyObject]]

분류에서Dev

Swift에서 NSMutableArray에 AnyObject 추가

분류에서Dev

Swift-AnyObject의 적절한 사용

분류에서Dev

'NSString'은 'DictionaryIndex <NSObject, AnyObject>'로 변환 할 수 없습니다.

분류에서Dev

'anyObject'는 'Dictionary <key, value>]'로 변환 할 수 없습니다.

분류에서Dev

[AnyObject]로 변환 할 수없는 문자열

분류에서Dev

'Anyobject'는 'UICollectionViewCell'로 변환 할 수 없습니다.

분류에서Dev

(_, _, _)-> Void '는'Response <AnyObject, NSError>-> Void '로 변환 할 수 없습니다.

분류에서Dev

anyObject를 문자열로 변환 할 수 없습니다.

분류에서Dev

이 [AnyObject]가 AnyObject로 어떻게 반환 될 수 있습니까?

분류에서Dev

XCTestCase의 Swift XCode 6 Beta 4에서 캐스트 할 때 "Swift dynamic cast failed"와 함께 NSFetchRequest 오류에서 반환 된 AnyObject 배열

분류에서Dev

AnyObject에 의해 제한되는 경우 Generic 값을 AnyObject로 변환 할 수 없습니다.

분류에서Dev

Python에서 Swift로 변환

Related 관련 기사

  1. 1

    Swift (String : AnyObject)는 [String : AnyObject]로 변환 할 수 없습니다.

  2. 2

    '[AnyObject]?' 'NSArray'(xcode, swift)로 변환 할 수 없습니다.

  3. 3

    AnyObject는 Swift를 사용하여 String으로 변환 할 수 없습니다.

  4. 4

    Swift 오류 '(AFHTTPRequestOperation ?, AnyObject?)-> () 유형의 값을 변환 할 수 없습니다.

  5. 5

    Swift Downcasting AnyObject (Float) to String

  6. 6

    Swift의 AnyObject 속성

  7. 7

    Swift에서 JSON으로 Alamofire 요청 후 AnyObject에서 <AnyObject> 응답을 변환하는 방법은 무엇입니까?

  8. 8

    NSUSerdefaults AnyObject를 변환하는 방법은 무엇입니까? SWIFT Array에 추가 할 수 있습니까?

  9. 9

    Swift 범주 : "유형의 값을 예상되는 인수 유형 'AnyObject!'로 변환 할 수 없습니다.

  10. 10

    Swift의 AnyObject 및 제네릭

  11. 11

    Swift NSArray subscript a value of type AnyObject

  12. 12

    NSDictionary 대 Swift의 [String : AnyObject]

  13. 13

    나중에 NSTimer--Swift로 변경할 수 있도록 변수를 AnyObject로 정의하십시오.

  14. 14

    iOS Swift : AnyObject 다운 캐스팅

  15. 15

    Swift: NSMutableSet -> Type 'CGPoint' does not conform to protocol 'AnyObject'

  16. 16

    swift dictionary population issue: type 'AnyObject' does not conform to protocol 'NSCopying'

  17. 17

    How do I determine the number of rows and columns in a Swift [[AnyObject]]

  18. 18

    Swift에서 NSMutableArray에 AnyObject 추가

  19. 19

    Swift-AnyObject의 적절한 사용

  20. 20

    'NSString'은 'DictionaryIndex <NSObject, AnyObject>'로 변환 할 수 없습니다.

  21. 21

    'anyObject'는 'Dictionary <key, value>]'로 변환 할 수 없습니다.

  22. 22

    [AnyObject]로 변환 할 수없는 문자열

  23. 23

    'Anyobject'는 'UICollectionViewCell'로 변환 할 수 없습니다.

  24. 24

    (_, _, _)-> Void '는'Response <AnyObject, NSError>-> Void '로 변환 할 수 없습니다.

  25. 25

    anyObject를 문자열로 변환 할 수 없습니다.

  26. 26

    이 [AnyObject]가 AnyObject로 어떻게 반환 될 수 있습니까?

  27. 27

    XCTestCase의 Swift XCode 6 Beta 4에서 캐스트 할 때 "Swift dynamic cast failed"와 함께 NSFetchRequest 오류에서 반환 된 AnyObject 배열

  28. 28

    AnyObject에 의해 제한되는 경우 Generic 값을 AnyObject로 변환 할 수 없습니다.

  29. 29

    Python에서 Swift로 변환

뜨겁다태그

보관