сбой приложения при нажатии кнопки «Назад» - PullRequest
0 голосов
/ 08 апреля 2011

в моем приложении у меня 2 просмотра
view1

{  
   [self.navigationController pushViewController:view2Controoler animated:YES];

}

view2
здесь, когда я нажимаю кнопку «Назад», приложение завершает работу без ошибок или предупреждений. также в view2 я использую следующий код

paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
NSString *documentsDirectory = [paths objectAtIndex:0];  
NSFileManager *manager = [NSFileManager defaultManager];  
NSArray *fileList = [manager directoryContentsAtPath:documentsDirectory ];  

в последнем выражении xcode отображается предупреждение "directoryContentsAtPath is depricated", поэтому я пытаюсь использовать

NSArray *fileList = [manager directoryContentsAtPath:documentsDirectory error:NULL]; 

и это утверждение показывает, что "NSFileManager может не отвечать на directoryContentsAtPath:error", в любом случае, я пытался запустить приложение и

Приложение

аварийно завершено с исключением "причина: '- [NSFileManager directoryContentsAtPath:error:]: нераспознанный селектор отправлен на экземпляр 0x6302f50'"

Надеюсь, кто-нибудь знает, как решить эту проблему

Спасибо

"

Ответы [ 2 ]

0 голосов
/ 08 апреля 2011

Я думаю, directoryContentsAtPath: возвращает автоматически освобожденный объект.

Если в вашем заголовке в качестве значения @property(nonatomic, retain) указан directoryContent, вы можете установить его с помощью

self.directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath: documentsDirectory];

и он автоматически сохранит объект, возвращенный NSFileManager, в противном случае вы можете вызвать

directoryContent = [[[NSFileManager defaultManager] directoryContentsAtPath: documentsDirectory] retain];

но обязательно отпустите этот объект, когда он вам больше не нужен.

Из документации Apple

directoryContentsAtPath:
Returns the directories and files (including symbolic links) contained in a given directory. (Deprecated in iOS 2.0. Use contentsOfDirectoryAtPath:error: instead.)

- (NSArray *)directoryContentsAtPath:(NSString *)path

Из документации Apple Предлагаем использовать

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error
0 голосов
/ 08 апреля 2011

NSFileManager не имеет методов класса, кроме +defaultManager. Вы должны использовать – contentsOfDirectoryAtPath:error: с вашим экземпляром файлового менеджера.

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