Контент не извлекается из файла - PullRequest
0 голосов
/ 28 августа 2010

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

При попытке этого initWithContentsOfFile возвращает (null). Проверка строки, существует ли файл, выводит «1» на консоль.

Это код, который я использую для сохранения данных:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[length.text writeToFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory] atomically:NO];

Я использую более или менее точно такой же код в другой программе без проблем.

Мне действительно нужна помощь, может быть, я сейчас просто слепой ...

Ответы [ 2 ]

2 голосов
/ 28 августа 2010

Когда вы пытаетесь создать массив из содержимого файла, файл должен быть в формате plist , а самый внешний элемент plist должен быть <array>. Если у него нет этого формата, инициализация не удастся, и ваш массив будет nil.

Вы создаете файл, записывая NSString в файл, что означает, что вы, вероятно, должны читать его в NSString, а не NSArray.

1 голос
/ 28 августа 2010

Документы для метода NSArray initWithContentsOfFile: говорят:

Возвращаемое значение Массив, инициализированный для содержания содержимого, указанного в aPath или nil, если файл может 't или содержимое файла не может быть проанализировано в массив.Возвращенный объект может отличаться от исходного получателя.

Вы не включили объявление length в свой фрагмент кода, но я предполагаю, что length.text возвращает объект NSString,не NSArray.Поэтому вам нужно будет прочитать это обратно из файла, используя initWithContentsOfFile: из NSString, а не NSArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...