iOS7,8,9新特性
IOS7:
1.[UIDevice uniqueidentifier] 失效 ,已经获取不到设备的UUID 任何使用到UUID做标记等操作好像发布不了
2.使用麦克风,推送等需要用户允许 更加注重用户意见
[[AVAudioSession sharedInstance]requestRecordPermission:^(BOOL granted){
if(granted({ //同意 }
}];
3.封装了获取数组方法 [NSArray firstObject]
4.增加了instancetype返回值类型
5.UIImage的渲染模式 增加Tint Color 拟物化与平面化等区别
6.优化了联网状态Reachability更加详细
7.i7定位只需要再info.plist添加自动Privacy-LocationUsage Description请求用户授权描述
i8定位需要请求用户授权NSLocationAlwaysUsageDescription
iOS 9:
1.ios9发送网络请求统一使用TLS 1.2SSL加密协议增强数据访问安全 HTTP + SSL/TLS + TCP = HTTPS
如果以前使用的不加密 可以再info.plist声明指定http
2.后台定位
//1.实例化定位管理器 _locationManager = [[CLLocationManager alloc]init]; //2.设置代理 _locationManager.delegate = self; //3.定位精度 _locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; //4.请求用户权限 分前台后台 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) { //[_locationManager requestWhenInUseAuthorization];//?只在前台开启定位 [_locationManager requestAlwaysAuthorization];//?在后台也可定位 } if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) { _locationManager.allowsBackgroundLocationUpdates = YES; } // 6. 更新用户位置 [_locationManager startUpdatingLocation];
3.URL scheme
URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。在iOS8并没有做过多限制,在iOS9中,如果使用URL scheme必须在"info.plist"中将你要在外部调用的URL scheme列为白名单,否则不能使用。
要再info.plist中配置LSApplicationQuerisesSchemes 增加白名单
item 0 String mqzone
item 1 String weixin
4.IOS9中 字体 类似word幼圆 但是字体间隙变大了 可以使用sizetofit 或者 向上取整ceilf()提前计算