你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> KVC(Key

KVC(Key

編輯:關於IOS

KVC(Key-value coding)是一套利用字符串標識符間接訪問對象屬性和關系的機制。Cocoa Programming中,Core Data,Application Scriptability, 綁定(Binding)技術和聲明屬性之一語言特性等,都是以KVC為基礎的。(Application Scriptability 和 綁定(Binding)是Mac OS X上特有的)。你也可以用Key-value coding來簡化你的代碼。

 

KVC的基礎

Keys and Key Paths

KEY:鍵(Key)是一個標識了對象的某個屬性的字符串。通常,在接收對象中,一個鍵對應的是一個訪問方法或者實例變量的名稱。Key必須是ASCII編碼,以小寫字母開頭,並且不能包含空白符。

鍵的一些示例:payee, openingBalance, transactions, amount

Key Path:鍵路徑(Key Path)是一個由多個Key組成,Key與Key之間用點(.)分開的字符串,通過順序遍歷,獲取對象屬性。鍵路徑中的鍵序列的第一個鍵相對於當前的接收對象,而後續的鍵只與前一個鍵對應的屬性相關。

例如,對於鍵路徑address.street,其中我們從當前的接收對象中獲取address這一屬性值,然後再通過這個address的對象屬性去獲取street屬性。

Getting Attribute Values Using Key-Value Coding

方法valueForKey: 返回特定鍵對應的值,這個值是與接收對象相關的。如果輸入的鍵沒有對應的方法或者實例變量,接收對象會發出valueForUndefinedKey: 消息。方法valueForUndefinedKey:默認會拋出NSUndefinedKeyException異常,可以在子類中改寫。

方法valueForKeyPath: 與之類似,返回特定鍵路徑在對應接收對象中的值。當鍵路徑的鍵序列中有任何一個鍵無法對應兼容KVC的對象,則接收對象都會發出valueForUndefinedKey: 消息。

方法dictionaryWithValuesForKeys: 對輸入的鍵數組中的每一個鍵進行檢索,返回包含了這些鍵對應的值的NSDictionary。

注:集合對象(Collection Object),如NSArray, NSSet, NSDictionary等不能包含nil值。可以使用NSNull來替代nil放入集合對象中標識空值。NSNull提供一個簡單的實例來表示對象屬性的nil值。在方法 dictionaryWithValuesForKeys: 和 setValuesForKeysWithDictionary: 中,NSNull和nil之間的轉換是自動的,所以你的對象不用明確測試NSNull值。

Setting Attribute Values Using Key-Value Coding

方法setValue:forKey: 給特定的鍵設值,這個值相對於對應的接收對象或者是已經提供的值。

方法setValuesForKeysWithDictionary: 使用NSDictionary來給一組鍵設值。該方法內部調用setValue:forKey:給每一組鍵值對設值。想存入空值時,使用NSNull取代nil.

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved