Содержание не извлекается из файла
-
01-10-2019 - |
Вопрос
У меня есть эта проводная проблема, я не могу получить контент из файла и инициировать свой NSMutableArray с ним.
Вот мой код:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"Does file exist?: %i", [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]]);
NSMutableArray *tempArr;
tempArr = [[NSMutableArray alloc] initWithContentsOfFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]];
При попытке этого, initwithcontentsofile возвращается (null). Проверка строки, если файл существует печатает «1» на консоль.
Это код, который я использую для сохранения данных:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[length.text writeToFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory] atomically:NO];
Я использую более или менее точно тот же код в другой программе без проблем.
На самом деле нужна помощь здесь, возможно, я просто слепой на данный момент ...
Решение
Документы для Nsarray's initWithContentsOfFile:
Способ сказать:
Возвращаемое значение Массив инициализирован, чтобы содержать содержимое файла, указанного по APATH или NIL, если файл не может быть открыт или содержимое файла не может быть проанализирован в массив. Возвращенный объект может отличаться от исходного приемника.
Вы не включаете декларацию length
в вашем фрагменте кода, но я предполагаю, что length.text
Возвращает объект NSString, а не Nsarray. Так что вам нужно будет прочитать, что обратно из файла, используя initWithContentsOfFile:
От NSString, а не Nsarray.
Другие советы
Когда вы пытаетесь создать массив из содержимого файла, файл должен быть в формате Plist, и внешний самый элемент Plist должен быть <array>
. Отказ Если у него нет этого формата, инициализация не удастся, и ваш массив будет nil
.
Вы создаете файл, написав NSString
к файлу, что означает, что вы, вероятно, должны читать его NSString
, а не а NSArray
.