这可能是一个荒谬的问题,但我还没有在这里找到它。
定义了协议委托方法:
- (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?!
.....
}
那么为什么当我用Camera调用委托方法时:是摄像头 var总是为零?似乎它永远不会识别我的第二个变量而它不介意编译? :)
答案 0 :(得分:0)
将两个互斥的布尔值传递给方法似乎是浪费。
使用两种委托方法也许你会更好:
[self.delegate myAddGPSViewController:self];
// or alternatively
[self.delegate myAddCameraViewController:self];
因为当你发射委托方法时,你已经知道你是否想要GPS或相机。
答案 1 :(得分:0)
它可能有, 再次声明'相机'变量, 你可以粘贴你的方法
- (void)myAddViewController:(MyAddViewController *)myAddViewController loadGPS:(BOOL)gps loadCamera:(BOOL)camera {
\这里吗?