下面是我在Objective-C我定義塊類型Swift中的Objective-C塊 - 可變缺失?
typedef void (^arrayBlock)(NSArray *blockArray);
我有一個使用這個作爲返回塊
-(void)loadTimesWithSuccessBlock:(arrayBlock)successBlock;
當我嘗試使用方法的Objective-C類這個方法在Swift中,這是自動完成給我的。
let timeClockLibrarian = HMFTimeClockLibrarian()
timeClockLibrarian.loadTimesWithSuccessBlock { ([AnyObject]!) -> Void in
//Where is blockArray?
}
我假設[AnyObject]!應該是NSArray。但我不明白我應該如何訪問該變量?
如果我是Objective-C的使用這個方法我得到的結果是這樣的:
[timeClockLibrarian loadTimesWithSuccessBlock:^(NSArray *blockArray) {
//I can use the blockArray here :)
}];
這就是我的想法。當我嘗試使用{self.logEntries = blockArray}將一個blockArray分配給一個局部變量,例如{var logEntries = [LogEntry()}時,它告訴我「不能用'(([AnyObject]')類型的參數列表調用'loadTimesWithSuccessBlock'! ) - > Void)'「 – Hackmodford
這是因爲數組是無類型的,分配失敗。根據你使用Xcode 6還是Xcode 7 beta,你有不同的選擇。 – zneak
我正在使用Xcode 6 – Hackmodford