2016-11-15 6 views
3

aws.amazon.com/mobile/에 대한 최신 샘플 코드를 따라 가면서 Swift 3에 매우 잘 업데이트되지 않은 코드 항목이 많이 있습니다 (이는 꽤 기괴합니다 그들의 자원을 고려함). 그냥 실행에 충돌Amazon AWS Mobile 샘플 코드의 이상한 스위프트 3 문제

if (!isInitialized) { 
AWSIdentityManager.defaultIdentityManager().resumeSession(completionHandler: 
    {(result: AnyObject?, error: NSError?) -> Void in 
    print("Result: \(result) \n Error:\(error)") 
    } as! (Any?, Error?) -> Void) 
isInitialized = true 
} 

: 당신이 AWSMobileClient.swift에 올 때

이 같은 코드의 라인이있다.

다행히 내가 문제는이 그래서

AWSIdentityManager.defaultIdentityManager().resumeSession(completionHandler: 
     {(result: Any?, error: Error?) -> Void in 
      print("Result: \(result) \n Error:\(error)") 
     } as! (Any?, Error?) -> Void) 

같은 인수를 변경하여 문제를 해결할 수 있었다, 나는

enter image description here

실제로 그것을 캐스팅하려고 무의미한 것 같습니다 경고를 얻을 같은 유형으로 당신은 단순히 전혀 작동하지 않는 캐스트를

AWSIdentityManager.defaultIdentityManager().resumeSession(completionHandler: 
     {(result: AnyObject?, error: NSError?) -> Void in 
     print("Result: \(result) \n Error:\(error)") 
     } 
    isInitialized = true 

삭제하면

는하지만, 당신은 이상한 구문 오류

1

enter image description here) 왜 모든 종류의를 얻을 수 어쨌든 거기 던지기?

2) 캐스트를 제거하거나 올바르게 작성하여 동일한 캐스트가 없으므로 경고가 표시되지 않도록하려면 어떻게해야합니까?

3) 해결책은 단지 as!이 아닌 힘 (즉, as)을 제거하는 것이지만 실제로 블록을 캐스팅해야하는 이유를 이해하지 못합니다.


은 -> 내용 재설정하고 설정 ...,이 지워집니다 - 코드의 같은 라인에서, 아마존은 여기에 iOS 시뮬레이터에서 EXC_BAD_ACCESS를 얻을 경우, 시뮬레이터을 "코멘트 포함 동일한 번들 ID를 가진 다른 앱에 의해 저장된 불량 인증 토큰. " 내가 여기에서 묻는 문제는 완전히 그와 관련이 없다.

답변