自己用swift開發(fā)才這么幾次茶没,并不熟悉所以在摸索過程中肌幽,在今天做東西的過程中由于需要用到字典里邊需要插入nil,心安理得的使用如下寫法感覺沒有問題
let array = [["key1":"val1","key2":"val2","key3":nil],["key1":"val1","key2":"val2","key3":nil]]
但我錯了抓半,就因為這種寫法今天浪費了我很長時間查找為什么我的xCode在編譯的時候為什么總是電腦內(nèi)存百分之百的使用率喂急,但xCode盡讓沒有報出是哪里出現(xiàn)的問題,我?guī)缀醵家偭说亚螅梢跃褪遣恢罏樯独纫疲?jīng)過各種排查,然后重裝xCode還是沒有能解決掉探入,后來突然想起可能和這種寫法有關(guān)將整塊代碼注釋掉狡孔,編譯運行,沒錯編譯通過了并且正常運行蜂嗽,后來就瘋狂查資料苗膝,查有關(guān)字典里存儲nil的資料,后來終于找到相關(guān)內(nèi)容植旧,其實正確寫法應(yīng)該是在定義這種數(shù)據(jù)時候應(yīng)該定義好數(shù)據(jù)類型荚醒,如以下代碼是可以正常用的
let array:[[String,AnyObject?]] = [["key1":"val1","key2":"val2","key3":nil],["key1":"val1","key2":"val2","key3":nil]]
沒錯就是這種代碼才可以用,你肯定注意到AnyObject?這個內(nèi)容隆嗅,如果不寫出結(jié)構(gòu)的定義那么編譯器也不會發(fā)現(xiàn)有什么問題界阁,可能swift的編譯器目前還沒考慮到這些,不過以后可能編譯器會把之前說的那種寫法兼容上胖喳,自己可以解析數(shù)據(jù)結(jié)構(gòu)類型或是能夠在xCode拋出警告告訴我們那樣寫是不對的泡躯,然后給出建議寫法。