2012-03-08 4 views
-1

У меня приложение ios. Мне нужно сохранить некоторые данные. Я пытался сделать это в текстовом файле так:Сохранить данные в txt

[toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL]; 

Но когда я dissmis контроллер представления, где я сохранить данные, содержимое файла является недействительным снова. Зачем?

ответ

0

Держу пари, что вы пытаетесь написать в комплект вашего приложения. Вы не можете. Вы должны писать либо в NSDocumentsDirectory, либо в [sandbox]/Library.

+0

NSString * путь = [[NSBundle mainBundle] pathForResource: @ "user" ofType: @ "txt"]; - это неправильно? –

+1

Да, это так. Вы НЕ МОЖЕТЕ писать в свой комплект приложений. –

+0

Серьезно, почему на Земле вы ниспровергаете это? –

0

Pass в параметре NSError * к вашему writeToFile и когда writeToFile возвращает NO (что означает, что не удалось), вы можете распечатать NSError информацию, чтобы помочь вам понять, что пошло не так.

Например:

NSError * error = nil; 
BOOL success; 

success = [toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error]; 

if (success == NO) 
{ 
    NSLog(@"error in writeToFile - %@", [error localizedDescription]); 
} 
3

Убедитесь, что вы сохраните файл в директории документа, а не каталог ресурсов, потому что вы не можете написать ваше приложение пачке.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"user.txt"]; 

Также проверьте iOS Storage Guidelines (требуется авторизация):

  1. только документы и другие данные, которые пользователями, или которые не могут быть воссозданы вашим приложением, должны храниться в /Каталог документов и будет автоматически , подкрепленный iCloud.

Я думаю, что учебники могли бы помочь вам понять, как работать с каталогами и файлами на прошивке:

+0

где я должен разместить свой .txt-файл в проекте? –

+1

Я обновил свой пример. Если вы создадите filePath, то он должен работать :) – dom

+0

да. но где я должен создать этот файл в первый раз? ваша ссылка не работает «Эта веб-страница имеет цикл перенаправления» –

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