我正在尝试将间接指针传递给 NSTimer scheduleTimerWithTimeInterval:target:selector:userInfo:repeats: 如下:
-(void)assignResultAfterDelay:(Result **)resultPtr {
[NSTimer scheduledTimerWithTimeInterval:1000
target:self
selector:@(assignResult:)
userInfo:resultPtr // how to do this?
repeats:NO];
}
由于从 (Result * __strong *) 到 id 的强制转换,这不起作用,这给出了“间接指针到 Objective-C 指针到 'id' 的隐式转换”错误。
桥接强制转换的变体和组合,例如(__bridge id)resultPtr
、 usingobjc_unretainedPointer(resultPtr)
或更改指针类型(Result * __weak *)
都没有帮助。这样做的正确方法是什么?
我想我可以创建一个包装类来保存我的间接指针并发送一个实例,但这看起来很难看。有更好的方法吗?