2009-05-15 25 views
0

Почему я получаю эти ошибки? alt text http://img39.imageshack.us/img39/2203/help.tifПочему я получаю сообщение об ошибке?

Он говорит:

Error: Request for member "jokeTableView" in something not a struction or union

Что это значит? И почему это ломается. Я пытался читать о initWithStyle, но я просто не мог догнать на него

Вот мой .h файл:

#import <UIKit/UIKit.h> 


@interface TableViewController : UITableViewController { 

NSMutableArray *jokes; 
IBOutlet UITableView *jokeTableView; 


} 

@property (nonatomic, retain) NSMutableArray *jokes; 

@end 

Спасибо!

+0

Способ доступа к нему предполагает, что jokeTableView является свойством TableViewController. – stefanB

+0

Возможно, вы могли бы попробовать скопировать/вставить только фактический код, маленькое изображение не очень полезно :) Просто вырезание из строки и, возможно, соответствующие строки из файла заголовка. – stefanB

+2

Может, вам не нравятся ваши шутки? (Извините, не смог устоять) :-) – lothar

ответ

7

Ваш объект (TableViewController) не имеет свойства с именем jokeTableView.

Чтобы получить доступ к jokeTableView со специальным оператором точки, он должен быть свойством. В противном случае вы должны получить к нему доступ с помощью ключа-Value-кодирования, совместимых методов или непосредственно с помощью -> оператора (или просто использовать его как Ивар и без ссылки на себя):

jokeTableView.delegate = self; 

или

self->jokeTableView.delegate = self; 

или

[self jokeTableView].delegate = self; 

или

@property (retain) UITableView *jokeTableView; 
// later... 
self.jokeTableView.delegate = self; 

Также обратите внимание, что вы устанавливаете розетку в инициализаторе, и это не сработает. Вы должны установить это в методе - [TableViewController awakeFromNib], поскольку self-> jokeTableView будет равен нулю, когда инициализатор фактически вызван (что происходит в IB до сериализации объекта в файл nib).

+0

Эй, Джейсон. LOL это должно быть примерно в третий раз, когда вы помогли мне на этой неделе! Спасибо чувак! ОК, я добавил свой заголовочный файл ... Дело в том, что я говорю, что такое jokeTableView ... – 2009-05-15 02:25:58

+0

Я вижу, что теперь я обновил свой ответ соответственно :) –

+0

Почему вы хотите, чтобы я изменил его на «я». jokeTableView.delegate = self; " если это уже было? – 2009-05-15 02:43:11

0

Поскольку вы делаете это во время инициализации, выходы должны быть NULL, поэтому эта инициализация не должна ничего делать. Это должно быть сделано в awakeFromNib время как можно раньше.

Смежные вопросы