所以,我有兩種方法:編碼效率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