如何在类的@implementation 中创建一个方法而不在@interface 中定义它?
例如,我有一个构造函数,它进行一些初始化,然后从文件中读取数据。我想将文件读取代码分解为一个单独的方法,然后从构造函数中调用该方法。我不想在标头中定义这个方法,因为它只对这个@implementation 上下文是私有的。
这可能吗?
这是我的例子。我有一个从文件中读取 Todo 任务列表的小程序。
这是@interface:
@interface TDTaskList : NSObject {
NSString* name; // The name of this list.
NSMutableArray* tasks; // The set of tasks in this list.
}
-(id)initListOfName:(NSString*)aName;
-(NSArray*)loadListWithName:(NSString*)aName;
@end
这是@implementation的一部分:
-(id)initListOfName:(NSString*)aName {
if (self = [super init]) {
name = aName;
NSArray* aTasks = [self loadListWithName:aName];
tasks = [NSMutableArray arrayWithArray:aTasks];
}
return self;
}
-(NSArray*)loadListWithName:(NSString*)aName {
// TODO This is a STUB till i figure out how to read/write from a file ...
TDTask* task1 = [[TDTask alloc] initWithLabel:@"Get the Milk."];
TDTask* task2 = [[TDTask alloc] initWithLabel:@"Do some homework."];
return [NSArray arrayWithObjects:task1, task2, nil];
}
我想要做的是不必在界面中定义以下内容:
-(NSArray*)loadListWithName:(NSString*)aName;