2016-01-20 63 views
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]; 

} 

回答

1

這是iOS中9.2和9.2模擬器

+0

蘋果的bug我見過各項─好像我第一次跑,去設置一切都很好,在隨後的時間裏,一切都消失了! –

相關問題