ios9新特性

一、nil

1、不能为空

@property (nonatomic,strong)NSArray *__nonnull ages;

@property (nonatomic,strong,nonnull) NSArray * ages;

2、可以为空

@property (nonatomic,strong)NSArray *__nullable ages;

@property (nonatomic,strong,nullable)NSArray * ages;

3、set可以为空,get不能为空

@property (null_resettable,nonatomic,strong)NSArray *ages;

需要重写set方法。例如:

-(void)setNums:(NSArray *)nums{

    if (nums ==nil)return;

    _nums = nums;

}

比如UIViewController的view属性,就是即使set为空,还是会懒加载一个view的值

4、范围内所有属性都为不能为空。不过可以给范围内部分属性设为__nullable,该属性就变为可以为空了

NS_ASSUME_NONNULL_BEGIN

NS_ASSUME_NONNULL_END

二、泛型

声明数组、字典......里面只能装什么

@property (nonatomic,strong)NSArray<NSString *> *__nonnull names;

@property (nonatomic,strong)NSMutableDictionary <NSString *,NSNumber *> *dic;

一方面可以控制传值,另方面取出来的值可以直接用点语法,像是_names.lastObject.count
自定义泛型举例:

@interface XXBag<Type> : NSObject

-(void)add:(Type)objecg;

-(Type)get:(int)index;

@end

使用时

    XXBag<XXBook *> *b1 = [[XXBagalloc]init];

    [b1 add:<#(XXBook *)#>]

    XXBag<XXCar *> *b2 = [[XXBag alloc]init];

比如系统中的NSMutableArray,@interface NSMutableArray<ObjectType> :NSArray<ObjectType>

协变性covariant 

正常情况下

    XXBag<NSString *> *b1 = [[XXBagalloc]init];

    XXBag<NSMutableString *> *b2 = [[XXBagalloc]init];    

    b1 = (XXBag<NSString *> *)b2;

需要强转
如果添加了covariant

@interface XXBag<__covariant Type> :NSObject

-(void)add:(Type)objecg;

-(Type)get:(int)index;

@end

那么

    b1 = (XXBag<NSString *> *)b2;

就可以直接b1 = b2;

结论:__covariant 小类型(泛型类的子类类型)->大类型(泛型类的 父类类型),可以不用添加强转

     __contravariant 与__covariant相反  大类型(泛型类的 父类类型) -> 小类型(泛型类的子类类型)

三、__kindof
表示:可能是
作用:父类类型,可以用子类类型来接收
使用:在返回值的类型前面加上__kindof,既可以告知使用者返回参数可能是什么类型,又可以避免需要强转

-(__kindofNSArray *__nonnull)test2:(NSArray *__nonnull)ary{

    return@[];

}

NSMutableArray *a =  [selftest2:@[]];

四、其他

storyBoard reference   控制器之间可以进行交互

UIStackView 类似安卓的控件自动顺序排列

Search API

3D touch

五、新技术的了解渠道

1、WWDC开发者大会视频

2、Xcode-help-Documentation and API Reference(即官方文档)-General-Guides-iOS x.x API Diffs

六、程序员的学习

1、iOS技术的学习

-官方文档

 -Sample Code(实例文档)

 -Guides(指南)

 -Reference(API参考)

-博客

- [CocoaChina](http://www.cocoachina.com/ios/list_69_1.html)

- [伯乐在线](http://ios.jobbole.com/)

- [objc中国](http://objccn.io/)

- [优秀博客汇总](https://github.com/tangqiaoboy/iOSBlogCN)

-微博

- [开发者头条](http://weibo.com/kaifazhetoutiao

- [CocoaChina](http://weibo.com/cocoachina

- [iOS程序犭袁](http://weibo.com/luohanchenyilong

- [唐巧_boy](http://weibo.com/tangqiaoboy

- [我就叫Sunny怎么了](http://weibo.com/u/1364395395

- [KITTEN-YANG](http://weibo.com/710312327

- [M了个J](http://weibo.com/exceptions)

- [小码哥教育](http://weibo.com/u/5596623481)

-微信公众号

- iOS开发(iosDevTips)

- iOS开发(iOSDevTip)

- iOS技术分享(iosinfo)

- 猿圈(CodePush) 

- 其他

- 多写技术博客(简书\个人博客站点)

- 参加一些技术分享活动(北京\上海\广州\杭州)

- 有自己的技术圈子

2、非iOS技术的学习

- `数据结构与算法(比如加密算法等等)`

- `HTML5`

- `JavaScript`

- Java(Android\JavaEE)

- C++

3、非技术的学习

- 管理\心理学\幸福\创业\历史

- 网易公开课

- 各种国际名牌大学的课堂视频

- 名人讲座(TED)

- 名人讲座\名人访谈










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值