1
簽名一個目標c函數我已經在過去使用的是:「[AnyObject]」是不相同的「的NSArray」
- (MMCall *)getLocalizedAppCategoriesWithOptions:(MMOptions *)options
success:(void (^)(NSArray *response))success
failure:(void (^)(NSError *error))failure;
我使用稱其爲 -
[[whateverclassname new] getLocalizedAppCategoriesWithOptions:nil
success:^(NSArray *response) {
} failure:[^(NSError *error) {
}
它返回一個NSArray對象。這些對象的父類是NSObject,它們的屬性很少。 在用swift進行實驗時,我使用相應的頭文件更新了橋接頭文件。問題是 -
1)如果我把它下面的方式,我得到編譯錯誤是「‘[AnyObject]’不等同於‘的NSArray’」
whateverclassname().getLocalizedAppCategoriesWithOptions(nil, success: {(response : NSArray!) in
}, failure: {(error: NSError!) in
})
2)如果我把它下面的方式,它編譯成功,但在應用程序崩潰在運行時 -
whateverclassname().getLocalizedAppCategoriesWithOptions(nil, success: {(response : [AnyObject]!) in
}, failure: {(error: NSError!) in
})
請幫我找出這有什麼問題?
你得到什麼消息,當它崩潰前擋? – nhgrif
這裏沒有味精。但是線程在[_NSArrayM insertObjectAtindex:] – Avi
之後顯示objc_exception_throw可能是相關的:http://stackoverflow.com/questions/24113354/swift-array-element-cannot-be-bridged-to-objective-c/24113484#24113484 – BergQuester