iphone не удается записать в файл - PullRequest
0 голосов
/ 02 августа 2010

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

Это мой код:

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 в симуляторе.

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

Ответы [ 2 ]

1 голос
/ 02 августа 2010

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

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

Это часть подхода песочницы iOS к безопасности.Решение состоит в том, чтобы записать в папку / tmp, Documents или Cache вместо .

0 голосов
/ 02 августа 2010

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

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