ios布尔var声明

Jau*_*me 5 iphone xcode cocoa-touch objective-c ios

我用布尔输入var声明了一个函数.我没有错.但是,当从另一个控制器调用它时,会出现通知:"与指针转换不兼容的整数将'BOOL'发送到BOOL类型的参数".我究竟做错了什么?谢谢.

- (void)composeBar: (BOOL *)savePars
Run Code Online (Sandbox Code Playgroud)

从其他角度来看:

AppDelegate *localFunction = [[UIApplication sharedApplication] delegate];

[localFunction composeBar:YES];
Run Code Online (Sandbox Code Playgroud)

Lil*_*ard 9

BOOL*不是布尔值.它是一个指向布尔值的指针.只是用

- (void)composeBar:(BOOL)savePars
Run Code Online (Sandbox Code Playgroud)

您可能会感到困惑,因为所有Obj-C对象都是用声明的*,但那是因为它们实际上是指针.但是,BOOL它不是一个对象,它实际上只是一个char持有01.正如您将使用int整数而不是int*(或更多的惯用代码NSInteger),您使用BOOL而不是BOOL*.