ios9新特性
来源:互联网 发布:淘宝图片怎么拍 编辑:程序博客网 时间:2024/06/06 14:13
一、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;
@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;
@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;
@interface XXBag<__covariant Type> :NSObject
-(void)add:(Type)objecg;
-(Type)get:(int)index;
@end
那么
b1 = (XXBag<NSString *> *)b2;
结论:__covariant 小类型(泛型类的子类类型)->大类型(泛型类的 父类类型),可以不用添加强转
__contravariant 与__covariant相反 大类型(泛型类的 父类类型) -> 小类型(泛型类的子类类型)
-(__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)
-名人讲座\名人访谈
- iOS9和iOS9新特性
- iOS9新特性
- iOS9 新特性
- ios9新特性
- ios9新特性
- iOS9新特性
- iOS9的新特性
- iOS9 新特性
- iOS9之新特性
- iOS9新特性
- iOS9新特性
- ios9的新特性
- iOS9 新特性
- IOS9新特性
- iOS9新特性
- ios9新特性UIStackView
- iOS9新特性Bitcode
- ios9新特性分析
- Javascript例题(持续更新)
- 正则表达式基本语法
- Android透明度换算
- 基于Redis的MessageQueue队列封装
- 中介者模式
- ios9新特性
- 无指针的Splay
- 字符串的截取
- Webpack:模块打包原理
- 线段树入门之入门
- 全面解析Notification
- Cannot resolve method getSupportFragmentManager();
- 如何在Ubuntu 16.04上设置一套OpenVPN服务器
- Power of Three问题及解法