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,如果不設定字串型別,基本上都沒有任何實用意義。
還請各位仁兄不吝賜教,迫切渴望有關於這兩者比較詳實的區別介紹和實用方法。
相關推薦
setValue: forKey 和 setObject: forKey 的區別
話不多說,還是直接上程式碼吧,如下圖: 查閱網上資料,99%的人都總結為: // setobject中的key和value可以為除了nil外的任何物件 setValue中的KEY只能為字串 value可以為nil也可以為空物件[NSNull nu
iOS -setValue:forKey:和-setObject: forKey區別
首先看一下下面的程式碼,請問程式是否會崩潰?如果不會,那麼輸出結果應該是什麼? NSMutableDictionary * dic = [@{@"name":@"小明"} mutableCopy]; [dic setObject:@"Men" forKey:@
iOS setValue和setObject的區別
tro -i index data- pack ans string類型 地址 ack 在使用NSMutableDictionary的時候經常會使用setValue forKey與setObject forKey,他們經常是可以交互使用的,代碼中經常每一種的使用都有。1.
iOS字典 setValue 和 setObject的區別
例項說明 NSString name = @"張三"; NSString name1 = nil; NSMutableDictionary *paramters = [[NSMutableDic
[iOS]setValue和setObject區別
1 setValue: forKey:的定義 @interface NSMutableDictionary(NSKeyValueCoding) - (void)setValue:(id)value forKey:(NSString *)key; @end value 為
iOS NSUserDefaults setObject forKey,本地化儲存,刪除字典中的null,空值,本地化的時候,如果value為空值所引起的崩潰
刪除字典中的null 我們在處理伺服器傳過來的資料過程中,如果資料中出現null,我們是沒法進行本地持久化處理的。在使用NSUserDaults儲存本地時,如果其中一個欄位的value為NULL值,就會出現崩潰。 null產生原因 null是後臺在處理資料的時候,如
cookie 和session 的區別詳解
重復 處理方式 一行 所有 有效 依據 是把 存儲 一個 二者的定義: 當你在瀏覽網站的時候,WEB 服務器會先送一小小資料放在你的計算機上,Cookie 會幫你在網站上所打的文字或是一些選擇, 都紀錄下來。當下次你再光臨同一個網站,WEB 服務器會先看看有沒有它上次留下的
JS中isPrototypeOf 和hasOwnProperty 的區別
另一個 strong 是否 指定 不同 名稱 功能 成員 eof 1、isPrototypeOf isPrototypeOf是用來判斷指定對象object1是否存在於另一個對象object2的原型鏈中,是則返回true,否則返回false。 格式如下: object1.is
struts1和struts2的區別
mvc 項目 專註 邏輯 表單 類對象 區別 action 層次 struts是Apache基金會的一個開源項目。struts提供了通用的MVC:模型層(專註於業務邏輯(數據的存儲、處理))、視圖層(數據在瀏覽器端的顯示)、控制層(連接模型層與視圖層)、 MVC架構:層次分
Statement, PreparedStatement和CallableStatement的區別
通過 請求 簡單 state 頁面請求 對象 以及 最好 功能 Statement用於執行不帶參數的簡單SQL語句,並返回它所生成的結果,每次執行SQL豫劇時,數據庫都要編譯該SQL語句。 Satatement stmt = conn.getStatement(); st
清空文件內容命令之echo和/dev/null區別?
linux 字符串 null 定向 我們知道清空文件內容有很多種方法我們只談論echo "" 和 /dev/null這兩種有什麽區別一、黑洞設備/dev/null是什麽?在 Linux 中, null 設備基本上被用來丟棄某個進程不再需要的輸出流,或者作為某個輸入流的空白文件,這些通常可以利用
JSON.parse()和eval()的區別
如果 字符串 擔心 並且 spa 區別 color 操作 插入 JSON.parse()之可以解析json格式的數據,並且會對要解析的字符串進行格式檢查,如果格式不正確則不進行解析,而eval()則可以解析任何字符串,eval是不安全的。 比如下面的字符串: var
href和src的區別
方式 並且 資源 per frame 資源下載 為什麽 link 存在 href和src的區別 [標簽]src和href之間存在區別,能混淆使用。src用於替換當前元素,href用於在當前文檔和引用資源之間確立聯系。 src是source的縮寫,指向外部資源的位置,指向
left join 和 on 的區別
wid color left join where 單表查詢 不同 決定 width aaa SQL中on條件與where條件的區別 在使用left jion時,on和where條件的區別如下: 1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為
徹徹底底理解C++中指針和引用的區別
c++ 區別 include 分享 sin style void png alt #include<iostream> using namespace std; void test(int **p) { int a=2; *p=&a;
em、rem和px的區別
版本 很好 浮點 調整 簡化 分辨 related 開心 大小 1、em與px的問題 px是何物? px像素(Pixel)。相對長度單位。像素px是相對於顯示器屏幕分辨率而言的。(引自CSS2.0手冊) em是相對長度單位。相對於當前對象內文本的字體尺寸。如當前對行內文本
mdev和udev的區別
logs htm tails net 區別 csdn targe blank cnblogs http://blog.csdn.net/hunanchenxingyu/article/details/40432275 http://www.cnblogs.com/lidab
HashMap和Hashtable的區別
性能 刪除 影響 之間 fail 創建 允許 hashmap 以及 HashMap和Hashtable都實現了Map接口,但決定用哪一個之前先要弄清楚它們之間的分別。主要的區別有:線程安全性,同步(synchronization),以及速度。 HashMap幾乎可以等價於
攔截器和過濾器的區別
str span line 實現 沒有 內部 不依賴 resp left 攔截器和過濾器都可以用來實現橫切關註功能,其區別主要在於: 1、攔截器是基於java反射機制的,而過濾器是基於函數回調的。 2、過濾器依賴於servlet容器,而攔截器不依賴於servlet容器。 3
線程同步和互斥的區別
之間 方法 無法 spa lock zed 模式 col 一定的 互斥是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。 同步是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。