【发布时间】:2011-01-30 16:37:41
【问题描述】:
我在 iOS SDK 示例代码中找到了以下方法:
@interface DITableViewController (private)
- (NSString *)applicationDocumentsDirectory;
@end
(私人)是什么意思?它是 Objective-C 2.0(Apple 开发)的新语法吗?
提前致谢:-)
【问题讨论】:
标签: objective-c ios
我在 iOS SDK 示例代码中找到了以下方法:
@interface DITableViewController (private)
- (NSString *)applicationDocumentsDirectory;
@end
(私人)是什么意思?它是 Objective-C 2.0(Apple 开发)的新语法吗?
提前致谢:-)
【问题讨论】:
标签: objective-c ios
这只是一个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
【讨论】: