Я создаю приложение MacOS.
В настоящее время я использую NSUserDefaults
для сохранения NSMutableArray
данных с помощью этого метода:
-(void)addPhotoUrl:(NSString*)url {
[self.photosArray addObject:url];
[[NSUserDefaults standardUserDefaults] setObject:self.photosArray forKey:@"kPhotos"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
И каждый раз при запуске приложенияЯ запускаю этот код для загрузки NSMutableArray
:
-(void)loadPhotosLike {
NSArray *myRepository = [[NSUserDefaults standardUserDefaults] arrayForKey:@"kPhotos"];
if(myRepository && [myRepository count] != 0) {
[self.photosArray addObjectsFromArray:myRepository];
}
}
До сих пор он отлично работал, но так как массив становится действительно большим (64 000 элементов), я начинаю думать, что это решение было недостаточно хорошим.
Существует проблема, заключающаяся в том, что массив существует как в локальном NSMutableArray
, так и сохраняется в NSUserDefaults
каждый раз, когда я добавляю в него новый элемент, это хорошее решение, которое не влияет на локальную память / приложениепроблема с памятью / записью на диск?
Стоит ли вместо этого использовать Core Data?
Одна из основных целей массива - поиск объектов.Будет ли это быстрее с CoreData?