Запись в список свойств на iPod Touch не работает, но работает в симуляторе
-
13-09-2019 - |
Вопрос
В приложении, которое я пишу, я пытаюсь записать список состояний для печенья с предсказанием в список свойств.В симуляторе это работает так, как ожидалось, и все отлично.На моем iPod Touch он отлично считывается из указанного списка, но никогда не обновляет список.
Существуют ли какие-либо различия между обновлением списков свойств с помощью симулятора и с помощью iPod Touch?
if(indexEdit == [data count])
{
NSString *temp = [NSString stringWithFormat:@"%@", textField.text];
[self.data addObject:temp];
}
else
{
NSString *temp = [NSString stringWithFormat:@"%@", textField.text];
[data replaceObjectAtIndex:indexEdit withObject:temp];
}
NSString *errorDesc;
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"Fortunes" ofType:@"plist"];
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:data format:NSPropertyListXMLFormat_v1_0 errorDescription:&errorDesc];
if (plistData)
{
[plistData writeToFile:bundlePath atomically:YES];
}
else
{
NSLog(errorDesc);
[errorDesc release];
}
Решение
Я думаю, что ваш пакет приложений считается в значительной степени доступным только для чтения.Если вы хотите записать файл, вы должны поместить его в папку "Документы", что-то вроде:
NSArray *savePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSMutableString *savePath = [NSMutableString stringWithString:[savePaths objectAtIndex:0]];
[savePath appendString:@"/Fortunes"];
// blah blah
[plistData writeToFile:savePath atomically:YES];
Не связан с StackOverflow