【发布时间】:2016-02-27 10:36:49
【问题描述】:
所以我有这两种方法:
-(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。
第二种方法将此字典写入一个文件,以供在我的应用程序的其他地方参考。
第一个方法经常被调用,第二个也是如此。但是,我知道,一旦字典被构建和保存,它的内容就永远不会改变,无论我多久调用这些方法,因为可能值的数量是有限的。
问题:鉴于第二种方法本质上只需要执行一次,我应该添加一些检查文件是否已经存在的行,本质上是添加需要执行的代码,还是我可以保持原样,一遍又一遍地覆盖现有文件?
我应该关心吗?我应该补充一点,我似乎没有遇到任何性能问题,所以这更像是一个哲学/卫生问题。
谢谢
【问题讨论】:
-
您提到“在我的应用程序的其他地方供参考”。所以你写入磁盘的唯一原因是从同一个应用程序中的其他地方再次打开它?那你为什么不把它存储在一个变量中以便以后访问数据呢?
-
因为应用程序可能会被强制退出,并且我需要依赖这样一个事实,即在重新启动时执行任何代码之前这些信息是可用的