Недвижимость доступна только через передачу сообщений (Objective-c) - PullRequest
1 голос
/ 01 февраля 2010

Почему-то я не могу получить доступ к представлению как свойству

MyAppDelegate *APPDELEGATE=((MexicanWaveAppDelegate*)[[UIApplication sharedApplication] delegate]);
[APPDELEGATE.viewController view];
APPDELEGATE.viewController.view; //Accessing unknown 'view' component of a property

Мне удалось получить доступ к представлению как свойству для других контроллеров представлений, и это свойство в документе. Можете ли вы объяснить это поведение?

Ответы [ 2 ]

1 голос
/ 01 февраля 2010

Либо APPDELEGATE.viewController не относится к типу UIViewController (или производного класса), либо вы не включили заголовок для MexicanWaveAppDelegate (MexicanWaveAppDelegate). ч)

0 голосов
/ 02 февраля 2010

Проблема фактически была вызвана тем, что мой файл делегата приложения .h (MexicanWaveAppDelegate.h) не содержал информацию о том, какого типа был контроллер представления (MexicanWaveViewController). Это означает, что любой класс, импортирующий MexicanWaveAppDelegate.h, будет иметь свое свойство MexicanWaveViewController как «непрозрачный тип» (тип, информация о котором неизвестна).

Эту проблему можно решить, изменив MexicanWaveAppDelegate.h одним из следующих способов:

  • Импорт файла "MexicanWaveViewController.h"
  • Предоставление предварительного объявления для MexicanWaveViewController
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...