IOS9新特性慢慢整理

2021-07-11 16:23:52 字數 2337 閱讀 3520

/**

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_beginns_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只能修飾物件,不能修飾基...