所以,我有两种方法:编码效率VS执行效率
-(void)importEvents:(NSArray*)allEvents {
NSMutableDictionary *subjectAssociation = [[NSMutableDictionary alloc] init];
for (id thisEvent in allEvents) {
if (classHour.SubjectShort && classHour.Subject) {
[subjectAssociation setObject: classHour.Subject forKey:classHour.SubjectShort];
}
}
[self storeSubjects:subjectAssociation];
}
-(void)storeSubjects:(NSMutableDictionary*)subjects {
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *subjectsList = [documentsDir stringByAppendingPathComponent:@"Subjects.plist"];
[subjects writeToFile:subjectsList atomically:YES];
}
第一循环通过假设100个项目组成的数组,并建立约10个独特的键/值对的NSMutableDictionary。
第二种方法将此字典写入文件以供在我的应用程序中的其他地方参考。
第一种方法经常被调用,第二种方法也是如此。但是,我知道,一旦字典被构建和保存,无论我多么频繁地调用这些方法,它的内容都不会改变,因为可能值的数量是有限的。
问题:考虑到第二个方法本质上只需要执行一次的事实,我应该添加一些行来检查文件是否已经存在,基本上添加了需要执行的代码,或者我可以将它保留为是,一遍又一遍覆盖一个现有的文件?
我应该在意吗?我应该补充说,我似乎没有任何性能问题,所以这更多的是一个哲学/卫生问题。
谢谢
您提到“供我的应用程序中的其他地方参考”。所以你写入磁盘的唯一原因是从同一个应用程序中的其他地方再次打开它?那么为什么不把它存储在一个变量中以便以后访问数据呢? – Joost
因为应用程序可能被强制退出,并且我需要依赖这样一个事实,即在重新启动时执行任何代码之前,此信息可用 – Sjakelien