问题描述:
当应用第一次安装到设备上时,第一次运行,会读取默认的设置(Settings.bunble),这样会导致应用第一次运行会报错。
解决办法:
在程序的入口的地方加入以下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSString *serverAddr = [[NSUserDefaults standardUserDefaults] stringForKey:@"ServerAddr"];
if(!serverAddr) {
[self registerDefaultsFromSettingsBundle];
}
[application registerForRemoteNotificationTypes:
UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound ];
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *string = [formatter stringFromDate:date];
NSLog(@"%@", string);
[formatter release];
UIViewController *viewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController"
bundle:nil];
self.rootViewController = [[UINavigationController alloc] initWithRootViewController:viewController];
self.rootViewController.navigationBarHidden = YES;
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.rootViewController = self.rootViewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)registerDefaultsFromSettingsBundle {
NSString *settingsBundle = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];
if(!settingsBundle) {
NSLog(@"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) {
[defaultsToRegister setObject:[prefSpecification objectForKey:@"DefaultValue"] forKey:key];
}
}
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister];
[defaultsToRegister release];
}
分享到:
相关推荐
AcknowledgementsBundle, 轻松添加 Settings.bundle,使用 CocoaPods'你的iOS应用程序 AcknowledgementsBundle轻松添加带有 CocoaPods的Settings.bundle,'你的iOS应用程序。 安装将 pod'AcknowledgementsBundle' ...
高仿微信,iOS应用开发模板.zip ios 开发模板。高仿微信,iOS应用开发模板.zip ios 开发模板。高仿微信,iOS应用开发模板.zip ios 开发模板。高仿微信,iOS应用开发模板.zip ios 开发模板。高仿微信,iOS应用开发...
iOS应用逆向与安全.pdf
IOS7应用开发入门经典.第5版.pdf,Object-C 版IOS开发书籍 。
触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙低功耗和iOS应用程序.zip触觉反馈及蓝牙...
IOS应用源码——应用程序密码锁.zip
IOS旧版应用下载,抓包
可以选ios系统旧版本的软件下降
IOS应用源码之仿iOS原生计算器.zip
IOS应用源码——应用程序密码锁.rar
ios应用源码之改进的simpleftpsampleiphoneftp.orig .
IOS应用源码之IOS欢迎界面.zip
IOS应用源码之IOS 打马赛克.zip
IOS应用源码之ios底部菜单.zip
IOS应用源码之相册 .rar
IOS应用源码——日历组件.rar
IOS应用源码之CMTextStylePicker for iOS.rar
IOS应用源码之CMHTMLView for iOS.rar
IOS应用源码之CLTickerView for iOS.rar
IOS应用源码之CHViewControllerSwitcher for iOS.rar