Итак, я нашел небольшую проблему с сохранением массива с помощью writeToFile, чтобы получить его позже. Я использую:Сохранение файлов с помощью writeToFile
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
if ([paths count] > 0)
{
NSString *arrayPath = [[paths objectAtIndex:0]
stringByAppendingPathComponent:@"array.out"];
[finalSavedArray writeToFile:arrayPath atomically:YES];
[[NSUserDefaults standardUserDefaults] setObject:arrayPath forKey:@"SavedArrayPath"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
, чтобы сохранить «finalSavedArray» в виде файла, а затем извлечения этого массива с помощью:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
NSLog(@"File path: %@",[[NSUserDefaults standardUserDefaults] objectForKey:@"SavedArrayPath"]);
NSMutableArray *savedArray = [NSMutableArray arrayWithContentsOfFile:[[NSUserDefaults standardUserDefaults] objectForKey:@"SavedArrayPath"]];
dispatch_sync(dispatch_get_main_queue(), ^{
NSLog(@"SAVED ARRAY:%@",savedArray);
});
});
Это прекрасно работает, когда я получить доступ к файлу вскоре после его сохранения, но когда Я перезапускаю приложение, и массив выводится как нулевой и, по-видимому, не найден в сохраненной директории. Из небольшого числа чтений кажется, что этот каталог файлов должен быть относительным, так как тот, который я сохраняю в данный момент, меняется каждый раз, когда вы открываете приложение, но я не совсем понял, как изменить свой код чтобы сохранить его в относительном каталоге. Любая помощь будет принята с благодарностью :)
Так что же я должен измениться от того, что я в настоящее время хранить относительный путь вместо абсолютного пути? – RodMatveev
См. Мой обновленный ответ. Это то, что я сказал, что тебе нужно делать. – rmaddy
Спасибо, все работает сейчас :) – RodMatveev