2010-11-24 9 views
6

रूप this पेजएकल कुंजी और कीपैथ के बीच क्या अंतर है?

[self setValue:[NSNumber numberWithInt:intValue] forKey:@"myObject.value"]; 

जवाब था कि "जाहिर है, यह एक महत्वपूर्ण पथ एक भी कुंजी है" में दिखाया गया है, इसका क्या मतलब है?

+1

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Concepts/BasicPrinciples.html –

+1

धन्यवाद, लेकिन आपको इसे उत्तर के रूप में पोस्ट करना चाहिए था इसलिए मैं इसे एक उत्तर चिह्नित कर सकता हूं – LolaRun

उत्तर

10

एक कुंजी एक स्ट्रिंग है जो किसी ऑब्जेक्ट की संपत्ति की पहचान करती है। एक कुंजी पथ बिंदुओं से अलग कुंजी की एक सूची है, जो घोंसला वाली संपत्ति की पहचान करने के लिए उपयोग की जाती है।

यहां एक उदाहरण है।

id town = [person valueForKeyPath:@"address.town"]; 

है: एक मुख्यपथ का उपयोग कर

id address = [person valueForKey:@"address"]; 
id town = [address valueForKey:@"town"]; 

या एक ही चरण में: एक वस्तु person एक संपत्ति address है, जो अपने आप में एक संपत्ति town आप कुंजियों का उपयोग दो चरणों में शहर मूल्य मिल सके है अधिक जानकारी के लिए Key-Value Coding पर ऐप्पल के दस्तावेज़ों पर एक नज़र डालें।

+0

तो कुंजी संग्रहित वस्तु की संपत्ति का नाम होना चाहिए? यदि हां, तो विकल्प क्या है, उदाहरण के लिए जावा और सी # में शब्दकोश या हैशटेबल्स जैसे? जहां चाबियाँ कोई स्ट्रिंग या ऑब्जेक्ट हो सकती हैं? – LolaRun

+1

@ लोलारुन हां, चाबियाँ संपत्ति का नाम होना चाहिए। या शब्दकोश के मामले में, कुंजी कुंजी है। [My answer] (http://stackoverflow.com/a/20015365/642706) में दूसरे प्रश्न पर उदाहरण कोड देखें: [उद्देश्य-सी में सीधे नेस्टेड शब्दकोश मानों तक पहुंच] [http://stackoverflow.com/questions/4317760/सीधे-पहुंच-नेस्टेड-डिक्शनरी-मूल्य-इन-ऑब्जेक्ट-सी/20015365 # 20015365) –

+0

शानदार उदाहरण और स्पष्टीकरण। –

संबंधित मुद्दे