Цель C: может не отвечать (вопрос) - PullRequest
0 голосов
/ 03 ноября 2010

У меня есть два UINavigationController в appdelegate.h

{
    UINavigationController *leftView;  
    UINavigationController *rightView;
    UIWindow *window;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *leftView;
@property (nonatomic, retain) IBOutlet UINavigationController *rightView;

appdelegate.m

@synthesize leftView;
@synthesize rightView;

тогда в другом классе

test.m

#import "appdelegate.h"  

если я это сделаю:

[self leftView] pushViewController...; //(Everything is ok)

но если я поменяю его на:

[self rightView] pushViewControll...; //it complains about ViewController may not respond to -rightView

Ответы [ 3 ]

1 голос
/ 03 ноября 2010

Ваш код кажется правильным; что кажется неправильным, так это то, что вы включаете AppDelegate. Если бы код был в AppDelegate.m, он, вероятно, работал бы без каких-либо жалоб со стороны компилятора.

Вместо этого вы определили строки @property для каждого, но это в AppDelegate.h, а не в test.h - но вы используете их в test.m. Это, вероятно, источник проблемы.

Интересно, код действительно запускается?

1 голос
/ 03 ноября 2010

Я рискну предположить: вы объявили и синтезировали свойство для rightView или хотя бы предоставили свой собственный метод получения вручную?

0 голосов
/ 03 ноября 2010

Похоже, вы объявили @property или метод leftView, который возвращает ivar leftView, но вы забыли сделать то же самое для rightView Ошибка говорит вам, что self не отвечает на селектор rightView.

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