/**
1. 首字母不帶下滑線的修飾類名(eg. nullable)
2. 首字母帶乙個下劃線,則首字母大寫,修飾物件(eg. _nullable)
3. 首字母帶兩個下劃線,則首字母小寫,修飾物件(eg. __nullable)
4. 大多數一般只有第一種
*/
作用:表示可以為空
nullable書寫規範:
// 方式一:
@property (nonatomic, strong, nullable) nsstring *name;
// 方式二:
@property (nonatomic, strong) nsstring *_nullable name;
// 方式三:
@property (nonatomic, strong) nsstring *__nullable name;
作用:不能為空
nonnull: non:非 null:空
書寫格式:
@property (nonatomic, strong, nonnull) nsstring *icon;
@property (nonatomic, strong) nsstring * _nonnull icon;
@property (nonatomic, strong) nsstring * __nonnull icon;
在ns_assume_nonnull_begin
和ns_assume_nonnull_end
之間,定義的所有物件屬性和方法預設都是nonnull
作用: get:不能返回為空, set可以為空
// 書寫方式:
@property (nonatomic, strong, null_resettable) nsstring *name;
// 注意;如果使用null_resettable,必須 重寫get方法或者set方法,處理傳遞的值為空的情況
作用:不確定是否為空
// 書寫方式只有這種
// 方式一
@property (nonatomic, strong) nsstring *_null_unspecified name;
// 方式二
@property (nonatomic, strong) nsstring *__null_unspecified name;
限制集合中的型別(陣列、字典、nsset)
注意:只能檢測方法的呼叫,因為宣告的泛型,只能放在方法中當乙個類在宣告的時候,某個物件的屬性不確定,只有建立物件的時候才確定,可以使用泛型
提高開發規範,減少程式設計師之間交流
通過集合取出來物件,直接當做泛型物件使用,可以直接使用點語法
放在型別後面,表示限制這個型別。
@property (nonatomic, strong) nsmutablearray
*datas;
@inte***ce
person
: nsobject
作用:用於轉換型別
不能在編譯的時候檢查真實型別
返回值,沒有提示
可以呼叫任何方法,編譯時不報錯
會自動識別當前物件的類,返回當前呼叫類的物件
+ (instancetype)person;
在呼叫的時候,很清楚的知道返回型別(類似於instancetype,但instancetype只能用於初始化中)
作用:
1. 將此型別指定為class_name或class_name的子類,告訴編譯器這兩者均能適配。
2. objective-c是動態型別,編譯器會在編譯時做型別匹配,不會有編譯警告,更不會報錯。
場景:
1. 泛型
2. 方法返回值
//
- (nullable __kindof uitableviewcell *)cellforrowatindexpath:(nsindexpath *)indexpath; visible or
index path is
outof range;
// returns nil if cell is not
@property (nonatomic, readonly) nsarray<__kindof uitableviewcell *> *visiblecells;
iOS9新特性 ATS使用
一 xcode7 新建的專案,foundation下預設所有http請求都被改為https請求.也就是說,服務需要提供https tls 1.2 的介面 如果服務不改變,則客戶端info.plist的根需加下面的鍵值 nsallowsarbitraryloads 或者嚴謹的 二 xcode7 預設開...
iOS9新特性關鍵詞
1 作用 表示不能為空 2 用法 1 屬性 nonnull 宣告的屬性不能為空 getter方法和setter方法都有 property nonnull,nonatomic,copy nsstring name 寫法一 property nonatomic,copy nsstring nonnull...
ios9新特性之關鍵字
ios9新出的關鍵字用來修飾方法屬性,或者方法的引數,方法的返回值 好處 1 迎合swift 2 提高我們開發人員開發規範,減少程式設計師之間的溝通 ios9新出的關鍵字有以下 nonnull,nullable,null resettable,null unspecified只能修飾物件,不能修飾基...