这可能是一个荒谬的问题,但我在这里已经找不到它了。在Objective-C方法中声明两个参数的正确方法?
已经定义了一个协议委托方法:
- (void)myAddViewController:(MyAddViewController *)myAddViewController
loadGPS:(BOOL)gps loadCamera:(BOOL)camera;
这基本上是确定GPS系统是否是要加载或摄像机应该被加载。
我通过调用这个方法:
[self.delegate myAddViewController:self loadGPS:YES loadCamera:NO];
// or alternatively
[self.delegate myAddViewController:self loadGPS:NO loadCamera:YES];
在我的实现方法在委托我们:
- (void)myAddViewController:(MyAddViewController *)myAddViewController loadGPS:(BOOL)gps loadCamera:(BOOL)camera {
.... .... ...
if (gps) {
......
}
if (camera) {
// camera is ALWAYS nil and never seems to be set?!
.....
}
那么,为什么当我打电话委托方法与摄像机:是是相机 var总是零?它似乎永远不会承认我的第二个变种,但它不介意编译? :)
我会尽量避免把BOOL当成零。确实,NO是一个设置为0的字符,通常相当于nil,但nil是用作指向对象的空指针。一个BOOL应该是YES或NO,并且在if语句中,使用BOOL就好像if(camera == YES)等。 虽然有趣的问题。好奇看看问题是什么。 – 2011-03-01 03:49:04
您向代表发送消息的代码在哪里? – 2011-03-01 03:53:59