[英]Objective-C completion block in Swift errors
我正在嘗試從Objective-C類運行一個方法,並在Swift類中使用完成塊,但遇到了一些麻煩。
對象代碼:
typedef void(^completionBlock)(NSDictionary *);
+ (void)getVersionsFromAPI:(completionBlock)sendData
{
NSDictionary *dict = [[NSDictionary alloc] init];
// Do stuff
sendData(dict);
}
SWIFT代碼:
API.getVersionsFromAPI { (ver : NSDictionary) -> Void in
self.version = ver.mutableCopy() as NSMutableDictionary;
}
我收到一個錯誤消息'[NSObject : AnyObject]!' is not a subtype of 'NSDictionary'
'[NSObject : AnyObject]!' is not a subtype of 'NSDictionary'
第一行'[NSObject : AnyObject]!' is not a subtype of 'NSDictionary'
。
我認為version
屬性是可選的NSMutableDictionary
:
var version: NSMutableDictionary?
如果正確,那么您應該按以下步驟修復代碼:
API.getVersionsFromAPI { (ver: [NSObject: AnyObject]?) in
if let ver = ver {
self.version = NSMutableDictionary(dictionary: ver)
}
}
我已經在Xcode 6.1.1中成功編譯了此代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.