一 . 關(guān)鍵字
1. nonnull代表: 不為空
2. nullable代表: 可以空
- 默認(rèn)的屬性, 可以空
- 這個關(guān)鍵字是給開發(fā)人員看的, 說明這個可以為nill, 下一步你要注意了
3. null_resettable代表: setter可以為空, getter不為空
- 兩個屬性看似矛盾, 實則是要將setter方法做處理, 保證getter方法拿到的不是nil, 從下圖報警告可以看出
- 控制器的View就是用的這個屬性, view可以賦值為nil, 但是一旦調(diào)用getter方法, view又會重新創(chuàng)建一個
4. NS_ASSUME_NONNULL_BEGIN和NS_ASSUME_NONNULL_END
- 他們之間全部默認(rèn)是nonnull屬性, 不為空
5. 上面幾種關(guān)鍵字, 用在方法中的注意點
- _Nonnull等價于__nonnull
- 編譯器會提示說明這個參數(shù)不能為nill
二. 泛型
1. 泛型的使用
2. 有利于點語法使用
// 聲明
@property (nonatomic, strong) NSMutableArray<NSString *> *array;
// 使用
_array.lastObject.length; 點語法不報錯
3. 自定義泛型
- 尖括號里面名字隨便寫, 可以參考NSMutableDictionary這個類, 定義了泛型
想訪問GXCar這個類的里面一層內(nèi)容, 前提是要初始化這個類.
4.協(xié)變性與逆變性
- __covariant協(xié)變性, 子轉(zhuǎn)父類型
- __contravariant逆變性, 父轉(zhuǎn)子類型
三. __ kindof使用
xcode7中修改了tableview方法的返回值, kindof是像的意思, 說明可以是自己, 也可以是自己的子類, 這樣, 如果子類接受的時候就不用強轉(zhuǎn)xxxx * db = (xxxx *)xxxxx
-
控制狀態(tài)欄隱藏顯示 (經(jīng)過測試ios 9以后如果加topwindow, 系統(tǒng)也沒崩潰)
- View controller-based status bar appearance設(shè)置為NO : status統(tǒng)一管理, 每個界面都一樣, 只能用[UIApplication sharedApplication].statusBarHidden來設(shè)置
- 如果這條key設(shè)置為YES : 就不是統(tǒng)一管理了, 交由控制器的- (BOOL)prefersStatusBarHidden方法來管理,
- 系統(tǒng)默認(rèn)設(shè)置為YES, 想統(tǒng)一就設(shè)NO
- Status bar is initially hidden這個key是設(shè)置啟動頁有沒有狀態(tài)欄的.
- YES就是隱藏, NO不隱藏. 它就干這個事!
- 如果這個Key設(shè)置為YES隱藏, 上一個key設(shè)置為統(tǒng)一管理的NO, 那結(jié)果就統(tǒng)一了都TM隱藏了!
- 解決辦法在AppDelegate中-didFinishLaunchingwithOptions方法下, 調(diào)用[UIApplication sharedApplication].statusBarHidden方法
iOS9開始的新特性
- nonnull__nonnull
- nullable__nonnullable
- null_resettable
- NS_ASSUME_NONNULL_BEGIN \ NS_ASSUME_NONNULL_END
- 泛型__contravariant__covariant
- __kindof
- UIWindow
- Storyboard Reference
- UIStackView
- Search API
- 3D touch
新技術(shù)的了解渠道
- WWDC開發(fā)者大會視頻
- 官方文檔
- General -> Guides -> iOS x.x API Diffs
程序員的學(xué)習(xí)
iOS技術(shù)的學(xué)習(xí)
- 官當(dāng)文檔
- Sample Code(示例代碼)
- Guides(指南)
- Reference(API參考)
- 博客
- 微博
- 微信公眾號
- iOS開發(fā)(iosDevTips)
- iOS開發(fā)(iOSDevTip)
- iOS技術(shù)分享(iosinfo)
- 猿圈(CodePush)
- 其他
- 多寫技術(shù)博客(簡書\個人博客站點)
- 參加一些技術(shù)分享活動(北京\上海\廣州\杭州)
- 有自己的技術(shù)圈子
非iOS技術(shù)的學(xué)習(xí)
數(shù)據(jù)結(jié)構(gòu)與算法(比如加密算法等等)
HTML5
JavaScript
- Java(Android\JavaEE)
- C++
非技術(shù)的學(xué)習(xí)
- 管理\心理學(xué)\幸福\創(chuàng)業(yè)\歷史
- 網(wǎng)易公開課
- 各種國際名牌大學(xué)的課堂視頻
- 名人講座(TED)
- 名人講座\名人訪談
快速上手公司的舊項目
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者