我有一个与此类似的 Obj-C 方法:
-(void)getUserDefaults:(BOOL *)refreshDefaults
{
PostAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
if (refreshDefaults) {
[appDelegate retrieveDefaults];
}
}
当我这样调用它时,我不会收到任何警告:
[self getUserDefaults:NO];
当我这样调用它时,我会收到警告:
[self getUserDefaults:YES];
警告:传递 'getUserDefaults:' 的参数 1 从整数生成指针而不进行强制转换
注意:我总是先调用传递 NO 的方法,然后再传递 YES
任何人都可以告诉我这里的问题是什么吗?谢谢。
最佳答案
BOOL
是原始类型,不是类,所以你的方法声明应该是
-(void)getUserDefaults:(BOOL)refreshDefaults;
相反。你收到警告的原因是 0
(这是 NO
定义的)是一个没有转换的有效指针值,相当于 NULL
,但是 1
(YES
被定义为)在没有转换的情况下不是有效的指针值。
关于iphone - 赋值从整数生成指针而不进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380024/