2010-10-19 85 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 */ 
}