4
我在我的應用程序中有一個相當大的視圖控制器,我想通過將某些功能分類來清理它。我對如何實現一個類別念起來有:類別無法識別Ivars
#import "StatsVC.h"
@interface StatsVC (TableViewDelegate)
@end
由於我的.h(類別被稱爲StatsVC + TableViewDelegate)。 和我Implemation開始是這樣的:
@implementation StatsVC (TableViewDelegate)
的類別有好幾次,我訪問的是原始class.I的實例變量已經閱讀並推測這是允許的變量,但在每次使用伊娃的類我收到此錯誤信息:
'Use of undeclared identifier 'iVar'
有誰知道爲什麼發生這種情況?
謝謝,
感謝Caleb,ivars是用屬性創建然後合成的。類別中的方法都是tableViewDelegate方法。這裏有一個例子:@property(nonatomic,strong)Session * selectedSession;是它在課堂上的聲明。在類我訪問它像這樣: - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return(2 + [[selectedSession pieceSession] count]); } – 2012-01-29 04:32:22
在這種情況下,ivars確實沒有在類別中聲明 - 它只能看到.h文件,因此無法分辨ivars可能是什麼。由於您使用的是屬性,因此您應該最有可能在類別方法中使用屬性,而不是直接訪問ivars。如果您想直接訪問ivars,請在類接口中自行聲明它們。 – Caleb 2012-01-29 04:39:29
謝謝很多迦勒,這個伎倆。太糟糕了,如果不從類別中聲明它們,就無法訪問合成的ivars。 – 2012-01-29 04:49:35