下面是我在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