1. 程式人生 > >setValue: forKey 和 setObject: forKey 的區別

setValue: forKey 和 setObject: forKey 的區別

話不多說,還是直接上程式碼吧,如下圖:

查閱網上資料,99%的人都總結為:
//  setobject中的key和value可以為除了nil外的任何物件

    setValue中的KEY只能為字串 value可以為nil也可以為空物件[NSNull null]

恕我愚昧,不敢苟同這麼粗陋的結論。以上程式碼實踐證明:除了綠色部分三行程式碼執行會崩潰以外,其他所有寫法都可正常執行。

本人通常習慣用法:setValue 用在繼承於NSObject的model屬性裡,key用字串型別 value不限制

                               setObject 用於字典,                                           key用字串型別,value不為nil

key,即時不設定為nil,如果不設定字串型別,基本上都沒有任何實用意義。

 

還請各位仁兄不吝賜教,迫切渴望有關於這兩者比較詳實的區別介紹和實用方法。