I 블록 파라미터와 방법 갖는다 오브젝티브 C 클래스가 또한 오브젝티브 C 메소드의 파라미터 블록의 파라미터의 타입을 변경합니다스위프트
+ (void)getCurrentUserInfoWithToken:(NSString*)token completionHandler:(void (^)(NSDictionary* userData))handler
을 볼 수있는 바와 같이, 블록에 NSDictionary 매개 변수가 있습니다. 그러나이 메서드를 신속하게 캐스팅하려고하면 오류가 발생합니다. " '[NSObject : AnyObject]'는 'NSDictionary'와 동일하지 않습니다." 여기 내 스위프트 코드입니다 :
ClockfaceAPI.getCurrentUserInfoWithToken(token, completionHandler: {
(userData : NSDictionary!) in
// block implementation goes here
})
및 I/= 그 해결 방법에 아무 생각이 당신의있는 NSDictionary *가 [NSObject의 : AnyObject]으로 해석됩니다으로
는 [코코아 데이터 형식 작업 코코아 및 목표 - C와 스위프트 사용]의 _Dictionaries_ 섹션을 참조하십시오 WorkingWithCocoaDataTypes.html # // apple_ref/doc/uid/TP40014216-CH6-XID_42),'NSDictionary' 참조가'[NSObject : AnyObject]'Swift 사전으로 바뀌 었음을 설명합니다. DPlusV가 지적했듯이,이 Swift 사전과 Swift 사전 패턴을 NSDictionary 패턴 대신 사용해야합니다. – Rob