我有6个类别包含唯一数据;我已经定义了一个类似于这样的类:
@interface ExportBookData : NSObject {
}
@property (strong, nonatomic) NSArray *booksArray;
@property (nonatomic, retain) NSMutableDictionary *builtFileList;
@property (nonatomic, retain) NSMutableArray *exportData;
@end
我想要做的是能够为每个类别实例化一次ExportBookData类,并在另一个类中使用该实例化类,使数据保持不变并且可以在类之间访问。
我已经尝试过这段代码,但它没有做我需要的事情:
ExportBookData *abe = [ExportBookData new];
abe.abeBuiltFileList = [NSMutableDictionary dictionary];
abe.abeExportData = [NSMutableArray arrayWithCapacity:abe.abeBooksArray.count];
更新 问题在于对象的寻址;我有类别名为Abe,Balls,Comp,Caller,Hut和House。我希望这个类具有可以作为Abe,Balls等解决的属性。我无法弄清楚如何使用我定义的内容来解决这个问题。
我查看了Google,但没有发现任何可以回答我的具体问题。
答案 0 :(得分:1)
封装,封装,封装!将特殊知识放在类本身。
假设您有一个ExportBookData对象,其行为方式不同,具体取决于它使用的书商。然后提供一个采用书商类型的初始化程序:
ExportBookData *abe = [[ExportBookData alloc] initWithCategory:@"Abe"];
好的,现在这个的ExportBookData实例知道它的行为应该是Abe类型的行为。但无论如何初始化ExportBookData,其公共属性名称都将是相同的,例如, builtFileList
和exportData
,因此您可以引用abe.builtFileList
,这将是Abe的正确类型列表。< / p>