【发布时间】:2011-05-31 21:42:56
【问题描述】:
我有一个从我的 plist 文件中读取信息的应用程序。为此,我使用以下代码:
NSData *plistData;
NSString *error;
NSPropertyListFormat format;
id plist;
localizedPath = [[NSBundle mainBundle] pathForResource:@"settings" ofType:@"plist"];
plistData = [NSData dataWithContentsOfFile:localizedPath];
plist = [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&error];
if (!plist) {
NSLog(@"Error reading plist from file '%s', error = '%s'", [localizedPath UTF8String], [error UTF8String]);
[error release];
}
NSString *tel=[NSString stringWithFormat:@"tel:%@",[plist objectForKey:@"number"]];
NSURL *telephoneURL = [NSURL URLWithString:tel];
[[UIApplication sharedApplication] openURL:telephoneURL];
为了编写它,我使用以下代码:
- (IBAction) saveSetting:(id)sender{
NSData *plistData;
NSString *error;
NSPropertyListFormat format;
id plist;
NSString *localizedPath = [[NSBundle mainBundle] pathForResource:@"settings" ofType:@"plist"];
plistData = [NSData dataWithContentsOfFile:localizedPath];
plist = [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListMutableContainers format:&format errorDescription:&error];
if (!plist) {
NSLog(@"Error reading plist from file '%s', error = '%s'", [localizedPath UTF8String], [error UTF8String]);
[error release];
}
NSLog([plist objectForKey:@"message"]);
[plist setValue:textMex.text forKey:@"message"];
NSLog([plist objectForKey:@"message"]);
NSLog([plist objectForKey:@"number"]);
[plist setValue:textNumero.text forKey:@"number"];
NSLog([plist objectForKey:@"number"]);
[plist setValue:@"NO" forKey:@"firstTime"];
[plist writeToFile:localizedPath atomically:YES];
[self aggiorna];
[settingScreen removeFromSuperview];
}
现在我遇到了一个大问题,该应用程序在我的所有开发人员设备和模拟器中都可以正常工作,并且该应用程序可以正确读取和写入文件。 我在 Apple Store 上提交了应用程序,但其他用户无法读取/写入此文件。 为什么这个? 谢谢 保罗
【问题讨论】:
-
是苹果拒绝了它,还是他们接受了它但用户有问题?你知道错误信息是什么意思吗?
-
为什么不简单地使用 NSArray 或 NSDictionary 来读写属性列表呢?这就像容易十倍。 WTP?
-
为什么不使用 NSUserDefaults?它用于设置,本质上是一个 plist。
-
@WTP 你能发布同样的例子吗?谢谢
-
您确定调用 saveSetting 方法时没有收到任何错误吗?该代码根本不应该工作。
标签: iphone objective-c plist writing