在我写的应用程序中,我正在尝试将财富饼干的财富列表写入属性列表。在模拟器中,这可以按预期工作,一切都很棒。在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];
}
答案 0 :(得分:4)
我认为你的应用程序包被认为是非常只读的。如果要编写文件,则应将其放在“Documents”文件夹中,例如:
NSArray *savePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSMutableString *savePath = [NSMutableString stringWithString:[savePaths objectAtIndex:0]];
[savePath appendString:@"/Fortunes"];
// blah blah
[plistData writeToFile:savePath atomically:YES];