我發現的iOS SDK示例代碼下面的方法:@interface DITableViewController(private)是什麼意思?
@interface DITableViewController (private)
- (NSString *)applicationDocumentsDirectory;
@end
是什麼(私人)意味着什麼?它是Objective-C 2.0的新語法(由Apple開發)?
在此先感謝:-)
我發現的iOS SDK示例代碼下面的方法:@interface DITableViewController(private)是什麼意思?
@interface DITableViewController (private)
- (NSString *)applicationDocumentsDirectory;
@end
是什麼(私人)意味着什麼?它是Objective-C 2.0的新語法(由Apple開發)?
在此先感謝:-)
這僅僅是一個category。該語法也存在於ObjC 1.0中。 「私人」是指「僅供私人使用」類別的名稱。這不是關鍵字。
定義此類別意味着DITableViewController的實例也可以發送消息-applicationDocumentsDirectory
,而無需修改類DITableViewController本身。
在ObjC 2.0中,最好將類擴展用於專用的類別。
@interface DITableViewController()
- (NSString *)applicationDocumentsDirectory;
@end
(鏈接的答案提供更多的細節。)
語法(category)
被用作替代子類。它們提供了向類添加方法的手段,即使是標準類,如NSString
。
http://macdevelopertips.com/objective-c/objective-c-categories.html
您提到了擴展類,但是您忘記提及類別方法可以*替換現有方法,無論您是否打算這樣做。 – Richard 2011-01-30 17:10:49
+1提級擴展(又名匿名類)。 – BoltClock 2011-01-30 16:54:23