首页 > 移动平台 > 详细

ios9 的新特性

时间:2015-12-09 13:32:41      阅读:316      评论:0      收藏:0      [点我收藏+]

1、关键字

(好处:1、提高开发规范    2、在方法中才发挥一些作用

1》在属性中使用关键字:

1)nullable:可能为空。(在对象之前写一个这个标注,主要是了为了迎合swift语言)

           注意:只能使用对象类型,不能用于基本类型

           swift中都需要约束是否为空。

           swift是一个强语言,在编译的时候就会报错,弱语言就不会。

 

      书写方式一:(放在属性里面)

技术分享

       书写方式二:

技术分享

        书写方式三:(只有在测试版本的时候才这样敲)

技术分享

 

2)nonnull:非空 (get,set非空)

         书写方式一:

技术分享

技术分享

         书写方式二:

技术分享

         书写方式三:

技术分享

 

         如果进入头文件,会发现很少用到nonnull这个关键字,但是在敲方法的时候,又会出现nonnull,

          苹果是这样做得:

用一个宏:

技术分享

在这个宏之间的,都是默认是nonnull。

 

3)null_resettable get方法中,为非空。在set方法中,可以为空

           注意点:必须处理为nil的情况

        书写方式一:

技术分享

       get方法中,为非空。在set方法中,可以为空

技术分享

      用处:  有的时候,允许传得时候为空,但是返回值的时候必须有值!!!

 

4_Null_unspecified:不确定

             在用点语法的时候(会出现这个)

 

2》在方法中使用关键字:(两个都可以)

1)使用方法:

技术分享

 

 

2ios9新特性之泛型

     1 作用:限制类型

      2)使用场景:1、用于集合、数组、字典、NSSet

                                        2、当声明一个类的时候,某个属性不确定类型,就可以使用泛型

      3)泛型的好处:提高开发的规范,一看便知道集合中是啥东东

技术分享

      4)如何定义泛型:在类型后面限制,<限制类型>

技术分享

如果没有用泛型去定义的话,在下面方法调用中没有提示:

技术分享

 

定义泛型之后:

技术分享

技术分享

 

技术分享

 

而且还有一个好处:取东西的时候方便,可以用点语法,因为知道你取的东西不是id类型了。

(id类型不能用点语法)

如果不定义泛型,是这样取数据:

技术分享

如果定义了泛型,这样取数据

              self.datas[0].length;

注意:1、并不是任何对象都能使用泛型

              2、泛型只用于方法调用

              3、在不可变数组中,是没有意义的。

 

自定义泛型:

如果没有定义泛型,拿到属性的时候,只能用父类。

技术分享

我们的要求是以创建的时候,就知道有

技术分享

 

在用的时候再去定义,

技术分享

 

 

5)泛型关键字:(协变、逆变)

1》协变:(向上转,子类转父类)

技术分享

这个时候,需要加一个强转:

技术分享

 

2》逆变:(向下转,父类转子类)

技术分享

 

技术分享

      

3、ios9新特性之 __kinof (UItableView)

       __kindof:相当于,修饰对象,用于返回值,描述返回的类型是当前类或者子类。

技术分享

 

从xcode5开始的时候,由原先的id变为instance。

用id的坏处:

1、id不能使用点语法。

2、能调用任何对象的方法,导致不能进行编译检查

所以在xcode5开始就会instance,因为instance会自动检测当前类的对象。

 

但是不管用id还是instance,都不知道返回类型,所以又有了新的改进。

当然如果你原先不传id,就直接传你想传得类型(person *),可是在创建子类的时候,会报错。

Xcode7就出了一个新的特性:

技术分享

技术分享

像在tableviewcell中,也有这样的情况,因为我们喜欢自定义cell,加了这个,就会返回我们想要的类型。

ios9 的新特性

原文:http://www.cnblogs.com/base0225/p/5032479.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!