按照我的想法,如果用户没有在setting设置值且有default-value,那么应该获取的是default-value,因为打开setting也能看见这些值.但是今天突然发现好像不是那么会事.获取的是null.看了AppPrefs的代码,它也进行了判断.如下:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
[window addSubview:[navigationController view]];
NSString *testValue = [[NSUserDefaults standardUserDefaults] stringForKey:kFirstNameKey];
if (testValue == nil)
{
// no default values have been set, create them here based on what's in our Settings bundle info
//
NSString *pathStr = [[NSBundle mainBundle] bundlePath];
NSString *settingsBundlePath = [pathStr stringByAppendingPathComponent:@"Settings.bundle"];
NSString *finalPath = [settingsBundlePath stringByAppendingPathComponent:@"Root.plist"];
NSDictionary *settingsDict = [NSDictionary dictionaryWithContentsOfFile:finalPath];
NSArray *prefSpecifierArray = [settingsDict objectForKey:@"PreferenceSpecifiers"];
NSString *firstNameDefault;
NSString *lastNameDefault;
NSNumber *nameColorDefault;
NSNumber *backgroundColorDefault;
NSDictionary *prefItem;
for (prefItem in prefSpecifierArray)
{
NSString *keyValueStr = [prefItem objectForKey:@"Key"];
id defaultValue = [prefItem objectForKey:@"DefaultValue"];
if ([keyValueStr isEqualToString:kFirstNameKey])
{
firstNameDefault = defaultValue;
}
else if ([keyValueStr isEqualToString:kLastNameKey])
{
lastNameDefault = defaultValue;
}
else if ([keyValueStr isEqualToString:kNameColorKey])
{
nameColorDefault = defaultValue;
}
else if ([keyValueStr isEqualToString:kBackgroundColorKey])
{
backgroundColorDefault = defaultValue;
}
}
// since no default values have been set (i.e. no preferences file created), create it here
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
firstNameDefault, kFirstNameKey,
lastNameDefault, kLastNameKey,
nameColorDefault, kNameColorKey,
backgroundColorDefault, kBackgroundColorKey,
nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
[[NSUserDefaults standardUserDefaults] synchronize];
}
// we're ready to do, so lastly set the key preference values
firstName = [[NSUserDefaults standardUserDefaults] stringForKey:kFirstNameKey];
lastName = [[NSUserDefaults standardUserDefaults] stringForKey:kLastNameKey];
textColor = [[NSUserDefaults standardUserDefaults] integerForKey:kNameColorKey];
backgroundColor = [[NSUserDefaults standardUserDefaults] integerForKey:kBackgroundColorKey];
}
- 大小: 64 KB
分享到:
相关推荐
iphone 开发 Setting.bundle 设置束模版,点击右键选择显示包内容,会出现一个plist文件(内容写入),在同级文件下可添加plist,或图片等。
iphone蜂窝网络代理配置文件
运营商配置文件for A1429 iPhone5,联通4G使用
基于iOS12.4(36.0.1)_CMCC_cn_iPhone 版本的IPCC修改的,iphone6可用的支持广电4G的IPCC文件。语音、数据、短信均可用。下载后直接把文件后缀名修改为.ipcc,使用i4刷入后,开下飞行就可以了。
iPhone 配置实用工具iPhone 配置实用工具iPhone 配置实用工具iPhone 配置实用工具iPhone 配置实用工具iPhone 配置实用工具iPhone 配置实用工具iPhone 配置实用工具iPhone 配置实用工具iPhone 配置实用工具
iphone电量配置文件 6.1-6.1.2电量配置文件,能使ios6更加省电
iphone备份文件
①iphoneX及以下,旧款苹果可以用广电。②附件是压缩包,123.zip,解压出来,“CBN_cn_iPhone.ipcc”。③爱思助手,--工具箱---更新IPCC文件,选择本地IPCC---“CBN_cn_iPhone.ipcc”,立即更新,完成后,重启,或...
xcode ios11.4 配置文件 ,放入路径/应用程序/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/就可以支持11.4的系统进行编译
“iPhone配置实用工具”(iPhone Configuration Utility)可让您轻松地创建、维护和安装配置描述文件及对配置描述文件进行加密,跟踪和安装预置描述文件与授权的应用程序,以及采集包括控制台日志在内的设备信息。
iPhone11的48.0 IPCC文件(提取自IOS15.1)
iPhoneFolder ipad iphone连接电脑查看文件
iphone6分层psd文件,
iphone配置实用工具,不能上3G的可以用
iphone全局变量和配置及程序,介绍了如何设置全局变量 如何访问配置文件 iphone全局变量和配置及程序,介绍了如何设置全局变量 如何访问配置文件
方便查看iphone文件的软件方便查看iphone文件的软件方便查看iphone文件的软件
iPhone3,1 4.1 shsh文件
iphone文件下载模块代码例子文件下载模块代码例子文件下载模块代码例子文件下载模块代码例子文件下载模块代码例子文件下载模块代码例子
iphone4s shsh文件