2010-08-02 3 views
0

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

Это мой код:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; 
[dict setObject:nameField.text forKey:@"name"]; 
[dict setObject:emailField.text forKey:@"email"]; 
BOOL ret = [dict writeToFile:[[NSString alloc] initWithString:[[NSBundle mainBundle] pathForResource:@"settings" ofType:@"plist"]] atomically:YES]; 
NSLog(@"%d",ret); 
[dict release]; 

Бревенчатые возвращает 0 на устройстве, но 1 в тренажере.

Может ли кто-нибудь помочь мне?

ответ

0

Почему вы пытаетесь написать в каталоге ресурсов? Вы проверили this?

1

Это не работает на устройстве, потому что вы не можете писать в папку пакета приложения, только в папки/tmp, Documents и Cache. Если пользователям удалось изменить пакет, цифровая подпись для приложения больше не будет действительна, и никто не сможет надежно получить ваше неповрежденное приложение из App Store и запустить его.

Это работает на симуляторе, однако, поскольку ваша операционная система позволит вам писать практически в любой домашней папке, включая папку пакета приложений. Функциональность OS X не ограничена, так как iOS ограничен.

Это часть iOS sandbox approach для обеспечения безопасности. Решение - write to the /tmp, Documents or Cache folder, instead.

+0

Спасибо, человек работал отлично –

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