2011-04-24 2 views
0

У меня возникли проблемы с определением наличия файла в папке с документами. Даже если я не сохранил данные в файле с NSKeyedArchiver, мой тест вернет true. Тест:iPhone - сохранение и извлечение данных

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *documentPath = [documentsDirectory stringByAppendingPathComponent:@"gameData.dat"]; 

if ([fileManager fileExistsAtPath:documentPath]) { 
    //if the file exists retrieve the data. 
    //this is always called, even if there is no file at the documentPath. 
}else{ 
    //set the defaults and save data. 
} 
+0

один раз прозрачный документPath с симулятора .. – ajay

ответ

0

Вы уверены, что не существует файл уже там? Когда я просто запускаю ваш фрагмент в пустом приложении на симуляторе, он не находит файл. Ввод пустого файла gameData.dat в этот каталог на моем Mac и запуск его на симуляторе теперь находит файл (запустите его на симуляторе, но там будет точка останова и посмотрите полный путь и перейдите в этот каталог в оболочку и попробуй).

+0

Благодарим вас за ответ. Я обнаружил, что фактически сохранил данные, когда инициализировал другой объект класса. Таким образом, он сохранил пустой файл и затем протестировал его. Я исправил это, и теперь он работает. – deludeddevelop

0

Этот файл существует в превью итерации приложения? Если вы загрузили приложение на телефоне в более ранний момент времени с этим файлом, если вы не удалите приложение перед загрузкой новой версии, оно все равно найдет этот старый файл.

+0

Благодарим за отзыв. Я удалил приложение перед запуском новой версии, чтобы удалить файл. Я действительно обнаружил, что я сохранил данные в другом объекте класса, прежде чем тестировать, чтобы увидеть, есть ли файл, чтобы он вернул true. Я исправил это, и теперь он работает. Спасибо за помощь. – deludeddevelop

Смежные вопросы