【iOS的异常处理机制:@try、@catch、@finally】
try捕获异常,catch抛出异常并处理,finally是无论有没有异常都可以需要执行的代码。
@try {
} @catch (NSException *exception) {
} @finally {
}
实际开发中苹果推荐使用NSError来处理程序运行中可恢复的错误,异常呗推荐用来处理不可恢复的错误,但是尽量不要出现不可恢复的情况。
exception容易造成内存管理问题(文档有描述即使是arc下,也不是安全的);exception使用block造成额外的开销,效率较低等等,另外这也的确是Cocoa开发者的习惯。解决问题能力不强,并造成额外的开销,不推荐使用。
【iOS程序强制退出】
1、这样会被苹果拒绝
exit(EXIT_SUCCESS)
2、@throw
@throw [NSException exceptionWithName:@"context show" reason:@"crush's reason" userInfo:nil];
【修改时区】
[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CMT"]];
dateFromComponets是和你系统的时区相挂钩的。
【iOS状态栏设置】
在实际开发过程中我们常常需要修改状态栏颜色,首先我们来看看infoPlist文件中的View controller-based status bar appearance字段,默认为NO,系统管理状态栏颜色,此时在AppDelegate中添加如下代码:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
这样就可以让状态栏中显示为亮色。这样的话,应用中的所有状态栏的颜色就都为亮色,但是我们有时候想根据实际单独某个界面的主题色,设置状态栏的颜色,这时候我们就需要把View controller-based status bar appearance字段设置为YES,把状态设置权限交给各自控制器。
我们可以直接viewDidLoad中修改各自controller状态栏颜色,7.0之后,控制器提供一个方法, preferredStatusBarStyle,直接在这个方法内返回状态栏样式就好了。