代码之家  ›  专栏  ›  技术社区  ›  sbs

NSUserDefaults物理数据

  •  1
  • sbs  · 技术社区  · 14 年前

    我想知道是否有任何地方可以看到我的NSUserDefaults中的数据?比如,它是怎么工作的?我的iphone中是否有一个文件包含NSUserDefaults中的所有数据,或者该文件存储在不同的应用程序中?如果我已经准备好了 [NSUserDefaults standardUserDefaults] setObject:someString forKey:@"someString"]; 在应用程序A中,我可以使用 NSString *listData = [[NSUserDefaults standardUserDefaults] stringForKey:@"someString"] 在另一个应用程序B中获取字符串?NSUserDefaults是否存在物理存储的位置?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Ole Begemann    14 年前

    应用程序的首选项存储在.plist文件(二进制格式)中 [APP_BASE_DIR]/Library/Preferences/

    ~/Library/Application Support/iPhone Simulator/4.1/Applications 在iPhone模拟器中查看app base dirs。

        2
  •  0
  •   Richard    14 年前

    NSUserDefaults存储在plist文件中;在iPhone和iPad上,不能简单地打开这些文件。 但是,您可以让应用程序将内容打印到调试器。

        3
  •  0
  •   Jeremy W. Sherman    14 年前

    我相信沙箱将阻止访问iOS下另一个应用程序的用户默认值。在MacOSX下,您可以通过下拉到 CFPreferences 应用程序编程接口:

    /* ownership follows the Create/Copy rule, so must release when done -
     * here, I just autorelease */
    NSString *
    value = [(id)CFPreferencesCopyAppValue(CFSTR("key"), CFSTR("com.foo.otherapp"))
             autorelease];
    if ([value isKindOfClass:[NSString class]]) {
        /* use the string */
    }