使用InAppSettingsKit时读取设置时出现问题

Ste*_*eve 5 iphone objective-c nsuserdefaults ios inappsettingskit

我正在使用这些InAppSettingsKit模块来管理我的设置.

我可以将它包含在我的项目中,以便我可以构建一个与我的项目正确交互的设置页面.我有一个root.plist,我可以更改,当我第一次在模拟器上运行我的应用程序时,我可以看到反映的更改.

但是,对于我的生活,我无法NSUserDefaults通过我的代码访问设置.当我运行下面的代码时,我可以遍历内容[NSUserDefaults standardUserDefaults].但是,我只看到一堆与plist文件中的内容无关的通用设置

NSUserDefaults* d = [NSUserDefaults standardUserDefaults];

NSDictionary* dict = [d dictionaryRepresentation];

NSString* descKey;
NSString* descObject;
NSString* classTypeForKey;
NSString* classTypeForObject;
id myObject;

for (id key in dict) {
    myObject = [dict objectForKey:key];
    classTypeForObject = [[myObject class] description];
    classTypeForKey = [[key class] description];
    descKey = [key description];
    descObject = [myObject description];
}
Run Code Online (Sandbox Code Playgroud)

那么InAppSettingsKit在哪里设置?医生说,[NSUserDefaults standardUserDefaults]所以我不知所措.

Ort*_*ntz 6

我认为你的问题依赖于对这个概念的误解.Root.plist不存储任何设置,只是定义了Settings.app和InAppSettingsKit如何在userDefaults上工作.

当您的应用第一次启动时,没有userDefaults.通常,您可以通过userDefaults.plist从资源中读取静态来设置适当的默认设置:

// Load the default values for the user defaults
NSString* pathToUserDefaultsValues = [[NSBundle mainBundle]
                                      pathForResource:@"userDefaults" 
                                      ofType:@"plist"];
NSDictionary* userDefaultsValues = [NSDictionary dictionaryWithContentsOfFile:pathToUserDefaultsValues];

// Set them in the standard user defaults
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValues];
Run Code Online (Sandbox Code Playgroud)