當前位置:成語大全網 - 新華字典 - Any 與AnyObject 有什麽區別?

Any 與AnyObject 有什麽區別?

Any:它可以代表任何型別的類別 (class)、結構 (struct)、列舉 (enum),包括函式和可選型別,基本上可以說是任何東西。

AnyObject:它指的是類別的任何實例。這只在使用參考型別 (reference type) 時,才能派上用場。這就相等於 Objective-C 中等的 ‘id’。

如果妳的字典只會在 Swift 中使用,妳就應該使用 Any,因為妳的型別 (Int、Double、Float、String、Array、和 Dictionary) 不是物件 (object)。

而如果妳會將字典傳遞給需要 NSDictionary 的 Objective-C 程式碼,就應該使用AnyObject。

當妳需要無型別物件的靈活性時,又或是當妳使用橋接的 Objective-C方法及返回無型別結果的屬性時,妳就會使用 AnyObject。 AnyObject 可以用作任何類別、類別型別、或 class-only 協定的實例的具體型別。

AnyObject 協定的靈活度與 Objective-C 的 id 型別類似。因此,匯入的 Objective-C 型別經常使用 AnyObject,來作為屬性、方法參數、和返回值的型別。

在妳處理參考型別時使用 AnyObject,而在處理數值型別 (value type) 時使用 Any。