Вопрос

У меня есть эта проводная проблема, я не могу получить контент из файла и инициировать свой 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top