iphone - iOS 能够在模拟器上读取 plist 文件,但不能在设备上读取

标签 iphone objective-c ios cocoa-touch nsuserdefaults

以前我读过有同样问题的帖子,但我的问题仍然存在。我的应用程序需要首先读取 plist 文件以获取一些参数,并且在设备上加载时无法读取默认设置 plist(在模拟器上工作)。一种解决方案应该是将该 plist 复制到文档目录中,但只有这个?设备是否无法读取 plist 中设置的用户默认值?如果我将它复制到 docs 目录,如果有另一个位置,设备是否能够关联 plist 的 key ?在执行任何功能之前,我需要阅读用户默认设置。谢谢。

-(void)loadSettings
{    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    self.userID = [[NSUserDefaults standardUserDefaults] stringForKey:@"userID"];

    self.nom2 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t2"];
    self.nom3 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t3"];
    self.nom4 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t4"];

    self.currentGlobal = [[NSUserDefaults standardUserDefaults] stringForKey:@"versionApp"];
    NSLog(@"Version App = %@", currentGlobal);


    self.colorTab = [[NSUserDefaults standardUserDefaults] stringForKey:@"color"];

    firstBoot = [[NSUserDefaults standardUserDefaults] boolForKey:@"firstBoot"];

    [defaults synchronize];

}

最佳答案

听起来您只想在用户默认值中设置一些初始值,以便您的应用可以读取它们。如果是这种情况,那么您只需使用 registerDefaults: 方法NSUserDefaults。示例:

[[NSUserDefaults standardUserDefaults] registerDefaults:
    [NSDictionary dictionaryWithObject: [NSNumber numberWithBool:YES] 
                                forKey: @"firstBoot"]];

NSUserDefaults 的美妙之处在于您永远不必弄乱 pList 内容或 iOS 文件系统。

关于iphone - iOS 能够在模拟器上读取 plist 文件,但不能在设备上读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232578/

相关文章:

objective-c - 在 Cocoa 中使用许多界面元素

ios - 无法解析真实设备上的日期,可在模拟器中工作

objective-c - 如何使用 NSXMLParser 解析包含 & 符号的字符串?

iphone - 为标签栏 IOS 设置图像

iphone - 当用户进入 UITableView 的编辑模式时如何更改披露样式?

ios - Swift/iOS - 回复通知失败

ios - NSInvalidArgumentException。 UIPasteboard设置字符串

iphone - UITableView onTouch 隐藏键盘

objective-c - iOS - 从 cell.textLabel.frame 获取 CGRect

ios - 在 App Purchase 中导致偶尔崩溃