2010-10-19 45 views
1

我想知道是否有任何地方我可以看到我的NSUserDefaults中有什么数据?喜欢,它是如何工作的?是否有一个文件存储在我的i​​phone中,其中包含NSUserDefaults中的所有数据或文件存储在不同的应用程序中?如果我在应用A中设置了[NSUserDefaults standardUserDefaults] setObject:someString forKey:@"someString"];,我可以使用NSString *listData = [[NSUserDefaults standardUserDefaults] stringForKey:@"someString"]来获取另一个应用B中的字符串吗? NSUserDefaults是否存储在某个地方?NSUserDefaults物理数据

回答

1

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

请参阅~/Library/Application Support/iPhone Simulator/4.1/Applications以查看iPhone模拟器中的应用程序基本目录。

0

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

0

我相信沙盒会阻止在iOS下访问另一个应用程序的用户默认值。在Mac OS X中,您可以使用另一个应用程序的用户默认设置,并将其降至CFPreferences API:

/* 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 */ 
}