Проблема с комплектом файлов iPhone Xcode 4 - PullRequest
0 голосов
/ 03 июня 2011

Я разрабатываю приложение, которое должно сохранять файлы, а затем показывать заголовки в виде таблицы, и оно просто отлично работает на xcode 3, теперь у меня есть xcode 4, и когда я загружаю tableView с заголовками всех файлов, это вылетает из-за плохого доступа. Файлы хранятся в основном комплекте. Я заметил, что если я вырежу содержимое viewDidLoad (куда я загружаю список файлов), приложение будет работать нормально! Это содержание моего viewDidLoad:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

list = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:NULL];

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 04 июня 2011

Судя по всему, list кажется иваром.Если это правильно, то вы присваиваете автоматически выпущенное значение list.Если вы сделаете доступ к этому позже, вы будете пытаться получить доступ к освобожденному объекту и, следовательно, иметь ошибку.Если у вас есть retain ed свойство, определенное для list, то вы можете сделать,

self.list = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:NULL];

Если у вас по какой-то причине наличие свойства невозможно, просто вызовите для него retain,это,

list = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:NULL] retain];
0 голосов
/ 03 июня 2011

Я бы порекомендовал проверить, пуст ли список файлов.

NSError* error;
list = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:&error];

if (!list)
{
    NSLog(error);
}

Возможно, из-за какого-либо обновления SDK каталог, к которому вы обращаетесь, либо недоступен, либо пуст. Но поскольку ваша программа дает сбой, это означает, что ваша list переменная 0x0.

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