0
我有一個使用Settings.bundle的項目,其中包含root.plist,其中包含我想用用戶默認值註冊的鍵值對列表。直到最近,這些值都可以從設備的「設置」應用程序中看到並編輯。現在我無法在設置中點擊我的應用程序時看到任何內容 - 詳細信息面板爲空。iOS 9.2 - 無法在設備設置應用程序中看到從Settings.bundle註冊的默認設置
如何確保我的鍵值對從應用程序提供的Settings.bundle正確顯示在設備的設置應用程序中?
編輯:似乎重新啓動設置應用程序可以修復問題,但如果我從Xcode重新部署應用程序,詳細信息窗格會再次變爲空白。這是我不知道的新版iOS的東西嗎?
這裏是我的代碼以註冊默認:
- (void)registerDefaultsFromSettingsBundle {
NSString *settingsBundle = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];
if(!settingsBundle) {
DLog(@"Could not find Settings.bundle");
return;
}
NSDictionary *settings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"Root.plist"]];
NSArray *preferences = [settings objectForKey:@"PreferenceSpecifiers"];
NSMutableDictionary *defaultsToRegister = [[NSMutableDictionary alloc] initWithCapacity:[preferences count]];
for(NSDictionary *prefSpecification in preferences) {
NSString *key = [prefSpecification objectForKey:@"Key"];
if(key && [[prefSpecification allKeys] containsObject:@"DefaultValue"]) {
id object = [prefSpecification objectForKey:@"DefaultValue"];
if(object != nil)
{
[defaultsToRegister setObject:object forKey:key];
}
}
}
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister];
}
蘋果的bug我見過各項─好像我第一次跑,去設置一切都很好,在隨後的時間裏,一切都消失了! –