苹果就持续的更新优化永利网上娱乐

1.Notification(通知)

自从Notification被引入之后,苹果就不断的更新优化,但这么些更新优化只是小打小闹,直至现在iOS
10发端真的的拓展大改重构,那让开发者也体会到UserNotifications的易用,效用也变得那些强大。

  • iOS 9 在此此前的通告

    1.在调用方法时,有些措施令人很难区分,容易写错方法,那让开发者有时候很窝囊。

    2.行使在运转时和非运行时捕获布告的途径还不一样。

    3.使用在前台时,是力不从心直接显示远程通告,还亟需进一步处理。

    4.一度发出的通告是无法更新的,内容暴发时是不可以更改的,并且唯有大约文本显示格局,扩充性根本不是很好。

  • iOS 10 开始的关照

    1.持有有关文告被统一到了UserNotifications.framework框架中。

    2.扩张了撤回、更新、中途还是可以修改通告的始末。

    3.公告不在是简约的文书了,可以进入视频、图片,自定义文告的显示等等。

    4.iOS
    10绝对从前的打招呼来说尤为好用易于管理,并且开展了周边优化,对于开发者来说是一件善事。

    5.iOS
    10伊始对于权力难点进行了优化,申请权限就比较简单了(本地与长途公告集成在一个办法中)。

  • iOS 10 布告学习相关材料:

[UserNotifications:

1.Notification(通知)

自从Notification被引入之后,苹果就不停的更新优化,但那几个更新优化只是小打小闹,直至现在iOS
10发端确实的拓展大改重构,这让开发者也体会到UserNotifications的易用,成效也变得那多少个强劲。

  • iOS 9 以前的布告

    1.在调用方法时,有些措施令人很难区分,简单写错方法,那让开发者有时候很窝心。

    2.行使在运转时和非运行时捕获布告的路子还不平等。

    3.使用在前台时,是不能直接显示远程通知,还亟需越来越处理。

    4.一度发出的打招呼是不能更新的,内容发生时是不可能更改的,并且唯有大致文本展示形式,扩张性根本不是很好。

  • iOS 10 开首的公告

    1.装有有关公告被统一到了UserNotifications.framework框架中。

    2.扩张了吊销、更新、中途还是可以修改公告的情节。

    3.布告不在是简约的公文了,可以插手视频、图片,自定义布告的呈现等等。

    4.iOS
    10针锋相对以前的通报来说更为好用易于管理,并且开展了大面积优化,对于开发者来说是一件善事。

    5.iOS
    10发端对于权力难点展开了优化,申请权限就相比简单了(本地与长途公告集成在一个办法中)。

  • iOS 10 通告学习相关材料:

    UserNotifications:
    苹果官方文档

    苹果官方视频1
    苹果官方视频2
    苹果官方视频3
    活久见的重构 – iOS 10 UserNotifications
    框架解析

    WWDC2016 Session笔记 – iOS 10
    推送Notification新特性

苹果官方文档](https://link.jianshu.com?t=https%3A%2F%2Fdeveloper.apple.com%2Freference%2Fusernotifications)

2.ATS的问题

iOS
9中默认非HTTPS的互联网是被禁止的,当然大家也得以把NSAllowsArbitraryLoads设置为YES禁用ATS。但是iOS
10从二零一七年八月1日起苹果不容许大家通过这一个主意跳过ATS,也就是说强制大家用HTTPS,如若不那样的话提交App可能会被驳回。可是大家可以透过NSExceptionDomains来针对特定的域名开放HTTP可以不难通过查对。

参考学习小说如下:
关于 iOS 10 中 ATS 的问题

苹果官方录像1

3.iOS 10 隐衷权限设置

iOS 10
开首对隐衷权限尤其凶恶,倘诺您不设置就会平素崩溃,现在无数相遇崩溃难题了,一般解决办法都是在info.plist文件添加对应的KeyValue就足以了。

永利网上娱乐 1

 

以上Value值,圈出的红线部分的文字是显示给用户看的,须要团结丰盛规范的提示表达,无法为空。近期解决办法基本都如出一辙,参考学习小说如下:
兼容iOS
10:配置获取隐衷数据权限讲明

苹果官方摄像2

苹果官方摄像3
活久见的重构 – iOS 10 UserNotifications
框架解析

WWDC2016 Session笔记 – iOS 10
推送Notification新特性

4.Xcode 8 运行一堆没用的logs解决办法

永利网上娱乐 2

 

上图大家看看,自己新建的一个工程啥也没干就打印一堆烂七八糟的事物,我认为那一个应该是Xcode 8的难题,具体也没细商讨,解决办法是安装OS_ACTIVITY_MODE : disable如下图:

永利网上娱乐 3

 

有关题材总是:
stackoverflow问答

2.ATS的问题

iOS
9中默许HTTP的互联网是不推荐使用的,当然大家也足以把NSAllowsArbitraryLoads设置为YES禁用ATS。可是iOS
10从二〇一七年九月1日起苹果分歧意大家通过那些措施跳过ATS,也就是说强制大家用HTTPS,假设不那样的话提交App可能会被拒绝。可是大家可以因而NSExceptionDomains来针对一定的域名开放HTTP可以简单通过审核。

参照学习文章如下:
关于 iOS 10 中 ATS
的问题

5.iOS 10 UIStatusBar方法过期:

永利网上娱乐 4

 

在我们付出中有可能用到UIStatusBar一对性质,在iOS 10
中这一个方式已经晚点了,假若您的品类中有效的话就得要求适配。下面的图纸也能发现,即使在iOS
10中你必要选拔preferredStatusBar比如说那样:

//iOS 10 
- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleDefault;
}

3.iOS 10 隐衷权限设置

iOS 10
开头对隐私权限越发严俊,若是你不安装就会一向崩溃,现在不可胜言相见崩溃难题了,一般解决办法都是在info.plist文件添加对应的KeyValue就可以了。

以上Value值,圈出的红线部分的文字是显得给用户看的,需求自己丰硕规范的升迁表明,无法为空。方今解决办法基本都一律,参考学习小说如下:
包容iOS
10:配置获取隐衷数据权限讲明

6.iOS 10 UICollectionView 品质优化

趁着开发者对UICollectionView的亲信,项目中用的地点也比较多,不过仍旧存在部分题材,比如偶尔会卡顿、加载慢等。所以iOS
10
UICollectionView更进一步的优化,因为叙述起来相比较复杂费用时间,在那里只提供学习参考小说如下:
WWDC2016 Session笔记 – iOS 10
UICollectionView新特性

4.Xcode 8 运行一堆没用的logs解决办法

上图大家看出,自己新建的一个工程啥也没干就打印一堆烂七八糟的事物,我认为这么些相应是Xcode 8的标题,具体也没细探究,解决办法是安装OS_ACTIVITY_MODE : disable如下图:

有关题材一而再:
stackoverflow问答

7.iOS 10 UIColor 新增方法

以下是法定文档的验证:

Most graphics frameworks throughout the system, including Core Graphics,
Core Image, Metal, and AVFoundation, have substantially improved support
for extended-range pixel formats and wide-gamut color spaces. By
extending this behavior throughout the entire graphics stack, it is
easier than ever to support devices with a wide color display. In
addition, UIKit standardizes on working in a new extended sRGB color
space, making it easy to mix sRGB colors with colors in other, wider
color gamuts without a significant performance penalty.

Here are some best practices to adopt as you start working with Wide
Color.

  • In iOS 10, the UIColor class uses the extended sRGB color space and
    its initializers no longer clamp raw component values to between 0.0
    and 1.0. If your app relies on UIKit to clamp component values
    (whether you’re creating a color or asking a color for its component
    values), you need to change your app’s behavior when you link
    against iOS 10.
  • When performing custom drawing in a UIView on an iPad Pro (9.7
    inch), the underlying drawing environment is configured with an
    extended sRGB color space.
  • If your app renders custom image objects, use the new
    UIGraphicsImageRenderer class to control whether the destination
    bitmap is created using an extended-range or standard-range format.
  • If you are performing your own image processing on wide-gamut
    devices using a lower level API, such as Core Graphics or Metal, you
    should use an extended range color space and a pixel format that
    supports 16-bit floating-point component values. When clamping of
    color values is necessary, you should do so explicitly.
  • Core Graphics, Core Image, and Metal Performance Shaders provide new
    options for easily converting colors and images between color
    spaces.

因为前面大家都是用RGB来安装颜色,反正用起来也不是专门各个化,本次新增的艺术应该就是一个弥补吧。所以在iOS
10
苹果官方提出我们运用sRGB,因为它品质更好,色彩更丰富。假使你协调为UIColor写了一套分类的话也可尝试替换为sRGBUIColor类中新增了八个Api如下:

+ (UIColor *)colorWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);

- (UIColor *)initWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);

5.iOS 10 UIStatusBar方法过期:

在我们开发中有可能用到UIStatusBar局地属性,在iOS 10
中这个措施已经晚点了,要是你的门类中有效的话就得必要适配。下面的图样也能窥见,若是在iOS
10中你需求使用preferredStatusBar譬如那样:

//iOS 10 
- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleDefault;
}

8.iOS 10 UITextContentType

// The textContentType property is to provide the keyboard with extra information about the semantic intent of the text document.

@property(nonatomic,copy) UITextContentType textContentType NS_AVAILABLE_IOS(10_0); // default is nil

在iOS 10
UITextField添加了textContentType枚举,提示文本输入区域所愿意的语义意义。

动用此属性可以给键盘和连串新闻,关于用户输入的内容的料想的语义意义。例如,您可以指定一个文本字段,用户填写收到一封电子邮件确认uitextcontenttypeemailaddress。当您提供关于您希望用户在文件输入区域中输入的始末的新闻时,系统能够在少数情状下活动选拔适合的键盘,并压实键盘矫正和主动与其余文件输入机会的三结合。

6.iOS 10 UICollectionView 性能优化

趁着开发者对UICollectionView的依赖,项目中用的地点也正如多,可是仍然存在有的标题,比如偶尔会卡顿、加载慢等。所以iOS
10
UICollectionView越发的优化,因为叙述起来相比复杂开销时间,在此处只提供就学参考文章如下:
WWDC2016 Session笔记 – iOS 10
UICollectionView新特性

9.iOS 10 字体随开首机系统字体而变更

当大家手机系统字体改变了后头,这我们Applabel也会随着一块儿变化,那亟需大家写过多代码来一发处理才能完成,可是iOS
10
提供了那般的特性adjustsFontForContentSizeCategory来安装。因为没有真机,具体实际操作还没去达成,假使了解错误协助指正。

  UILabel *myLabel = [UILabel new];

   /*
    UIFont 的preferredFontForTextStyle: 意思是指定一个样式,并让字体大小符合用户设定的字体大小。
   */
    myLabel.font =[UIFont preferredFontForTextStyle: UIFontTextStyleHeadline];

 /*
 Indicates whether the corresponding element should automatically update its font when the device’s UIContentSizeCategory is changed.
 For this property to take effect, the element’s font must be a font vended using +preferredFontForTextStyle: or +preferredFontForTextStyle:compatibleWithTraitCollection: with a valid UIFontTextStyle.
 */
     //是否更新字体的变化
    myLabel.adjustsFontForContentSizeCategory = YES;

7.iOS 10 UIColor 新增方法

以下是合法文档的表达:

Most graphics frameworks throughout the system, including Core Graphics,
Core Image, Metal, and AVFoundation, have substantially improved support
for extended-range pixel formats and wide-gamut color spaces. By
extending this behavior throughout the entire graphics stack, it is
easier than ever to support devices with a wide color display. In
addition, UIKit standardizes on working in a new extended sRGB color
space, making it easy to mix sRGB colors with colors in other, wider
color gamuts without a significant performance penalty.

Here are some best practices to adopt as you start working with Wide
Color.

  • In iOS 10, the UIColor class uses the extended sRGB color space and
    its initializers no longer clamp raw component values to between 0.0
    and 1.0. If your app relies on UIKit to clamp component values
    (whether you’re creating a color or asking a color for its component
    values), you need to change your app’s behavior when you link
    against iOS 10.
  • When performing custom drawing in a UIView on an iPad Pro (9.7
    inch), the underlying drawing environment is configured with an
    extended sRGB color space.
  • If your app renders custom image objects, use the new
    UIGraphicsImageRenderer class to control whether the destination
    bitmap is created using an extended-range or standard-range format.
  • If you are performing your own image processing on wide-gamut
    devices using a lower level API, such as Core Graphics or Metal, you
    should use an extended range color space and a pixel format that
    supports 16-bit floating-point component values. When clamping of
    color values is necessary, you should do so explicitly.
  • Core Graphics, Core Image, and Metal Performance Shaders provide new
    options for easily converting colors and images between color
    spaces.

因为事先大家都是用RGB来安装颜色,反正用起来也不是更加多种化,本次新增的点子应该就是一个弥补吧。所以在iOS
10
苹果官方提议大家运用sRGB,因为它性能更好,色彩更丰富。若是您自己为UIColor写了一套分类的话也可尝试替换为sRGBUIColor类中新增了几个Api如下:

+ (UIColor *)colorWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);

- (UIColor *)initWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);

10.iOS 10 UIScrollView新增refreshControl

永利网上娱乐 5

 

iOS 10 未来只借使一而再UIScrollView那么就支持刷新功用:

@property (nonatomic, strong, nullable) UIRefreshControl *refreshControl NS_AVAILABLE_IOS(10_0) __TVOS_PROHIBITED;

8.iOS 10 UITextContentType

// The textContentType property is to provide the keyboard with extra information about the semantic intent of the text document.

@property(nonatomic,copy) UITextContentType textContentType NS_AVAILABLE_IOS(10_0); // default is nil

在iOS 10
UITextField添加了textContentType枚举,提醒文本输入区域所期望的语义意义。

使用此属性可以给键盘和系统音信,关于用户输入的始末的意料的语义意义。例如,您可以指定一个文书字段,用户填写收到一封电子邮件确认uitextcontenttypeemailaddress。当您提供有关您希望用户在文件输入区域中输入的情节的新闻时,系统可以在好几景况下活动接纳适当的键盘,并增强键盘校订和积极向上与其他文件输入机会的组合。

11.iOS 10 判断系统版本正确姿势

认清系统版本是大家平时选拔的,更加是后天大家都有可能须求适配iOS
10,那么难题就涌出了,如下图:

永利网上娱乐 6

 

咱俩赢得了答案是:

//值为 1
[[[[UIDevice currentDevice] systemVersion] substringToIndex:1] integerValue]
//值为10.000000
[[UIDevice currentDevice] systemVersion].floatValue,
//值为10.0
[[UIDevice currentDevice] systemVersion]

从而说判断系统方法最好或者用前边的三种艺术,哦~我忘记说了[[UIDevice currentDevice] systemVersion].floatValue以此艺术也是不可相信的,好像在8.3本子输出的值是8.2,记不掌握了反正是不可信赖的,所以提出我们用[[UIDevice currentDevice] systemVersion]其一措施!

Swift判断如下:

  if #available(iOS 10.0, *) {
            // iOS 10.0
            print("iOS 10.0");
        } else { }

参照小说如下:
iOS 平时工作之常用宏定义大全

9.iOS 10 字体随初叶机系统字体而变更

当大家手机系统字体改变了随后,那大家Applabel也会跟着一块儿变化,那亟需我们写过多代码来一发处理才能贯彻,但是iOS
10
提供了这么的习性adjustsFontForContentSizeCategory来安装。因为没有真机,具体实际操作还没去完毕,假若理解错误帮助指正。

  UILabel *myLabel = [UILabel new];

   /*
    UIFont 的preferredFontForTextStyle: 意思是指定一个样式,并让字体大小符合用户设定的字体大小。
   */
    myLabel.font =[UIFont preferredFontForTextStyle: UIFontTextStyleHeadline];

 /*
 Indicates whether the corresponding element should automatically update its font when the device’s UIContentSizeCategory is changed.
 For this property to take effect, the element’s font must be a font vended using +preferredFontForTextStyle: or +preferredFontForTextStyle:compatibleWithTraitCollection: with a valid UIFontTextStyle.
 */
     //是否更新字体的变化
    myLabel.adjustsFontForContentSizeCategory = YES;

12.Xcode 8 插件不可以用的标题

大家都升级了Xcode 8,但是对于插件器重的开发者们,一边哭着一边去网上查找解决办法。那么上面是解决办法:
让你的 Xcode8
继续选拔插件

而是看看小说最终的解释,大家领会假若用插件的话,可能安全上会有难题、并且付诸审核会被拒绝,所以提出大家要么不要用了,解决办法总是有些,比如在Xcode中添加注释的代码块也是很有益于的。

10.iOS 10 UIScrollView新增refreshControl

iOS 10 以后即使是再三再四UIScrollView那就是说就协理刷新作用:

@property (nonatomic, strong, nullable) UIRefreshControl *refreshControl NS_AVAILABLE_IOS(10_0) __TVOS_PROHIBITED;

13.iOS 10始发项目中有些文字展现不全难点

我用Xcode 8Xcode 7.3分别测试了下,如下图:

永利网上娱乐 7

Xcode 8

永利网上娱乐 8

Xcode 7

创办一个Label然后让它自适应大小,字体大小都是17最终输出的幅度是不平等的,大家再看一下,下边的数码就知晓怎么升级iOS 10
之后App中有些文字彰显不全了:

Xcode 8打印 Xcode 7.3打印
1个文字宽度:17.5 1个文字宽度:17
2个文字宽度:35 2个文字宽度:34
3个文字宽度:52 3个文字宽度:51
4个文字宽度:69.5 4个文字宽度:68
5个文字宽度:87 5个文字宽度:85
6个文字宽度:104 6个文字宽度:102
7个文字宽度:121.5 7个文字宽度:119
8个文字宽度:139 8个文字宽度:136
9个文字宽度:156 9个文字宽度:153
10个文字宽度:173.5 10个文字宽度:170

英文字母会不会也有那种难题,我又通过测试,后来发现英文字母小意思,只有汉字有标题。方今唯有一个一个修改控件解决那几个标题,暂时髦未任何好办法来缓解。

11.iOS 10 判断系统版本正确姿势

判断系统版本是我们平时应用的,越发是当今大家都有可能必要适配iOS
10,那么难题就涌出了,如下图:

大家得到了答案是:

//值为 1
[[[[UIDevice currentDevice] systemVersion] substringToIndex:1] integerValue]
//值为10.000000
[[UIDevice currentDevice] systemVersion].floatValue,
//值为10.0
[[UIDevice currentDevice] systemVersion]

所以说判断系统方法最好或者用前边的三种办法,哦~我记不清说了[[UIDevice currentDevice] systemVersion].floatValue其一措施也是不可信的,好像在8.3本子输出的值是8.2,记不通晓了反正是不可靠的,所以提出大家用[[UIDevice currentDevice] systemVersion]本条主意!

斯威夫特判断如下:

  if #available(iOS 10.0, *) {
            // iOS 10.0
            print("iOS 10.0");
        } else { }

参照文章如下:
iOS 寻常工作之常用宏定义大全

14.Xcode 8应用Xib awakeFromNib的警戒难点

(本条更新于:2016-09-18)
Xcode 8事先我们应用Xib初始化- (void)awakeFromNib {}都是那般写也没怎么难点,可是在Xcode 8会有如下警告:

永利网上娱乐 9

 

如若不喜欢那几个警示的话,应该明了的充裕[super awakeFromNib];俺们来看看官方认证:

You must call the super implementation of awakeFromNib to give parent
classes the opportunity to perform any additional initialization they
require. Although the default implementation of this method does
nothing, many UIKit classes provide non-empty implementations. You may
call the super implementation at any point during your own
awakeFromNib method.

本文只为整理iOS 10 相关材料,也参照部分网上的文章,还会陆续更新任何iOS
10 相关材料,以及开发中碰到的题材等等。

iOS 10
苹果官方文档

文/判若四个人丶(简书小编)
原文链接:http://www.jianshu.com/p/0cc7aad638d9
文章权归小编所有,转发请联系小编获得授权,并标注“简书小编”。

12.Xcode 8 插件不可能用的难点

世家都提高了Xcode 8,不过对于插件依赖的开发者们,一边哭着一边去网上检索解决办法。那么上面是解决办法:
让你的 Xcode8
继续运用插件

不过看到文章最后的解释,大家了解假诺用插件的话,可能安全上会有标题、并且付诸审核会被拒绝,所以提出我们要么不要用了,解决办法总是有些,比如在Xcode中添加注释的代码块也是很有益于的。

13.iOS 10上马项目中有的文字突显不全难题

我用Xcode 8Xcode 7.3各自测试了下,如下图:

Xcode 8

Xcode 7

开创一个Label接下来让它自适应大小,字体大小都是17说到底输出的小幅是分化的,大家再看一下,上面的数量就通晓为何升级iOS 10
之后App中有的文字呈现不全了:

Xcode 8打印 Xcode 7.3打印
1个文字宽度:17.5 1个文字宽度:17
2个文字宽度:35 2个文字宽度:34
3个文字宽度:52 3个文字宽度:51
4个文字宽度:69.5 4个文字宽度:68
5个文字宽度:87 5个文字宽度:85
6个文字宽度:104 6个文字宽度:102
7个文字宽度:121.5 7个文字宽度:119
8个文字宽度:139 8个文字宽度:136
9个文字宽度:156 9个文字宽度:153
10个文字宽度:173.5 10个文字宽度:170

英文字母会不会也有这种难点,我又经过测试,后来意识英文字母小意思,只有汉字有标题。近期唯有一个一个改动控件解决这些题目,暂前卫未其他好措施来缓解。

14.Xcode 8采纳Xib awakeFromNib的警戒难点

(本条更新于:2016-09-18)
Xcode 8事先大家选拔Xib初始化- (void)awakeFromNib {}都是那般写也没怎么难题,可是在Xcode 8会有如下警告:

借使不希罕那几个警示的话,应该显明的增加[super awakeFromNib];俺们来探视官方证实:

You must call the super implementation of awakeFromNib to give parent
classes the opportunity to perform any additional initialization they
require. Although the default implementation of this method does
nothing, many UIKit classes provide non-empty implementations. You may
call the super implementation at any point during your own
awakeFromNib method.

15.Xcode 8编译过慢的标题

(本条更新于:2016-09-20)
洋洋人都浮现Xcode 8尚无事先编译快了,甚至有点人慢的辣眼睛。可是本人的从未有过感觉很慢,跟从前几乎,我觉得跟电脑应该有一些挂钩呢,有的开发者多少个月不重启电脑,电脑里运行一堆线程,一堆没用的垃圾堆。上边是加速Xcode编译的章程,感兴趣的可以去看一下:
进步Xcode编译速度

16.iOS 10 ImagePickerController.cameraViewTransform问题

(本条更新于:2016-09-21)
诸多少人反映自定义相机现身了难题,cameraViewTransform不可能用了,其实网上关于那几个的资料不是诸多,在那里提供参考办法如下:

  • 经过监听AVCaptureSessionDidStartRunningNotification来解决

  //#import <AVFoundation/AVFoundation.h>
  //监听
   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(cameraNotification:) name:AVCaptureSessionDidStartRunningNotification object:nil];
  //监听方法
  - (void)cameraNotification:(NSNotification *)notification {
    dispatch_async(dispatch_get_main_queue(), ^{
          // 这里实现
          imagePickerController.cameraViewTransform = CGAffineTransformMakeTranslation(50,  50);
      });
  }

本文只为整理iOS 10 相关材料,也参照部分网上的篇章,还会陆续更新任何iOS
10 相关材料,以及支付中境遇的题材等等。
本小说头阵地址:http://www.jianshu.com/p/0cc7aad638d9
iOS 10
苹果官方文档

相关文章