我有一个类似于这样的 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
谁能告诉我这里的问题是什么?谢谢。
最佳答案
getUserDefaults 采用 BOOL*。传递 NO 时不会收到警告,因为 NO 是 0 而 0 是 NULL,这是一个合法的 BOOL*。 YES 是 1 并且相同的转换不是自动安全的。
你应该让 getUserDefaults 使用一个普通的 BOOL,而不是一个指针。
关于iphone - 赋值从没有强制转换的整数生成指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/380024/