这是我在 Objective-c 中定义的 block 类型
typedef void (^arrayBlock)(NSArray *blockArray);
我有一个 Objective-C 类,其方法使用它作为返回 block
-(void)loadTimesWithSuccessBlock:(arrayBlock)successBlock;
当我尝试在 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 :)
}];
最佳答案
[AnyObject]!
确实只是变量的类型;自动完成没有命名它。您只需要执行类似 (blockArray: [AnyObject]!)
的操作。
let timeClockLibrarian = HMFTimeClockLibrarian()
timeClockLibrarian.loadTimesWithSuccessBlock { (blockArray: [AnyObject]!) -> Void in
// your code here
}
关于Swift 中的 Objective-C block - 变量丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32400806/