簡體   English   中英

Swift錯誤中的Objective-C完成塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM