Правильный способ объявить два параметра в методе Objective-C? - PullRequest
0 голосов
/ 01 марта 2011

Это может быть смешной вопрос, но я не могу найти его уже здесь.

Определить метод делегата протокола:

- (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: YES, camera var всегда nil? Кажется, он никогда не распознает мой второй вар, но он не против компилирования? :)

Ответы [ 2 ]

0 голосов
/ 01 марта 2011

Возможно, снова объявив переменную camera, вы можете вставить свой метод

- (void)myAddViewController:(MyAddViewController *)myAddViewController loadGPS:(BOOL)gps loadCamera:(BOOL)camera {

\ here?

0 голосов
/ 01 марта 2011

Кажется пустой тратой передать два взаимоисключающих логических значения методу.

Возможно, вам лучше использовать два метода делегата:

[self.delegate myAddGPSViewController:self];
// or alternatively
[self.delegate myAddCameraViewController:self];

, потому что когда вы 'При использовании методов делегирования вы уже будете знать, хотите ли вы использовать GPS или камеру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...