Swift中Any & AnyObject

kim_jin發表於2017-12-26

在學習Swift的過程中,進行json型別轉換的時候,老是奇怪應該在[String: xxx]裡面填什麼,是Any還是AnyObject呢?上網搜了一下這兩者的區別,大概搞清楚了些。根據官方文件的說法:

  • Any代表的是所有型別的例項,包括function型別
  • AnyObject則代表的是所有class型別的例項

在Swift 2的時候,OC中的id型別在swift中對映為AnyObject,而到了Swift 3,則變成了Any,比方說類,列舉,結構體或者其他Swift的型別。

需要記住的是String, Array, Dictionary, Int, Float等都不是class的型別,使用時要使用Any!


參考連結:

  1. anyobject-and-any-in-swift
  2. TypeCasting
  3. Objective-C id as Swift Any

相關文章