我有:
BOOL someBoolValue = ... //some code returning BOOL
Run Code Online (Sandbox Code Playgroud)
当我尝试调用时:
[self performSelectorOnMainThread:@selector(refreshView:) withObject:someBoolValue waitUntilDone:NO];
Run Code Online (Sandbox Code Playgroud)
我收到警告:
从不同大小的整数转换为指针
有什么暗示吗?
您正在传递一个"原始"布尔值,其中id(指向对象的指针)应该是.
[self performSelectorOnMainThread: @selector(refreshView:)
withObject:someBoolValue
waitUntilDone:NO]
Run Code Online (Sandbox Code Playgroud)
应该更好
[self performSelectorOnMainThread:@selector(refreshView:)
withObject: [NSNumber numberWithBool: someBoolValue]
waitUntilDone: NO]
Run Code Online (Sandbox Code Playgroud)
您可以refreshView:通过将boolValue方法发送到数字对象来提取方法中的布尔值:
if( [myWrappedBoolean boolValue] ) {
...
}
Run Code Online (Sandbox Code Playgroud)
与Java或C#不同,Objective-C没有从原始值到对象的"自动装箱".该BOOL型只是一个小的整数类型,这会导致您所看到的错误消息,因为编译器需要为第二个参数的指针performSelectorOnMainThread:withObject:waitUntilDone:.
| 归档时间: |
|
| 查看次数: |
1786 次 |
| 最近记录: |