分配给'BOOL的不兼容的整数到指针转换

Cod*_*der 2 xcode boolean

我只是固有一个来自前一个程序员的新应用程序,并继续遇到"不兼容的整数到指针转换,从'BOOL'(又名'bool')分配给'BOOL*'(又名'bool*')".

像这样的代码

_backButtonPressed = YES;

_isEdited = YES;
Run Code Online (Sandbox Code Playgroud)

想出同样的错误.我试过*(_ backButtonPressed)= YES; 和*_backButtonPressed =是,但两种情况都会导致程序崩溃.

如果我不管它,程序仍然有效,但我想保持代码干净.有什么建议吗?

小智 5

我的猜测是有问题的两个变量被宣布错误.例如,_backButtonPressed可能声明为

BOOL* _backButtonPressed;
Run Code Online (Sandbox Code Playgroud)

但应该是

BOOL _backButtonPressed;
Run Code Online (Sandbox Code Playgroud)

发生崩溃的原因是_backButtonPress不是指针:如果是,则会出现类似_backButtonPressed =(BOOL*)malloc(sizeof(BOOL))的语句; 某处.如果在尝试分配给*(_ backButtonPressed)之前没有这样做,那么你会看到崩溃.

很容易犯下声明BOOL*而不是BOOL的错误,因为Cocoa对象总是用*声明

我建议您修复声明.如果你这样做,我很确定一切都会奏效.