Попытка установить свойство представления приводит к ошибке: Запрос на членство ... не структура или ... - PullRequest
0 голосов
/ 15 мая 2010

Я объявил свойство в представлении (созданном конструктором интерфейса, если оно имеет значение) и пытаюсь установить значение из контроллера представления - примерно так:

self.view.url = someURL;

Это дает эту ошибку:

Request for Member 'url' in something not a structure or union

Я включил заголовок для представления в файл .m контроллера, но я, вероятно, просто делаю что-то не так, но я не знаю, что ... есть идеи?

Код вида:

@interface PDFView : UIView {
    NSURL *url;
}

@property (nonatomic, retain) NSURL *url;

@end

@implementation PDFView

@synthesize url;

Ответы [ 2 ]

2 голосов
/ 15 мая 2010

Я подозреваю, что проблема в том, что "self.view" имеет тип UIView (так как он унаследован от UIViewController), а не PDFView, поэтому компилятор не распознает наличие свойства "url" на это.

Что произойдет, если вы это сделаете?

  PDFView *aView = self.view;
  aView.url = someURL;
1 голос
/ 15 мая 2010

Внутри вашего подкласса UIViewController self.view относится к большому представлению ViewController, которое представляет собой UIView. Ваш PDFView должен быть подпредставлением в self.view, если вы добавили его в IB.

Вам необходимо добавить PDFView в файл .h вашего контроллера представления с помощью IBOutlet, подключить его в IB, а затем обратиться к нему через розетку, которую вы объявили в своем контроллере представления.

...