2009-07-01 18 views
15

मैं अपने आईफोन ऐप के लिए एक सेव स्टेट को लागू करने की कोशिश कर रहा हूं।एक प्लेस्ट फ़ाइल से डेटा पढ़ना

मैं एक plist SaveData.plist बुलाया फ़ाइल मिल गया है और मैं इसे निम्नलिखित

NSString *pListPath2 = [bundle pathForResource:@"SaveData" ofType:@"plist"]; 
NSDictionary *dictionary2 = [[NSDictionary alloc] initWithContentsOfFile:pListPath2]; 

self.SaveData = dictionary2; 
[dictionary release]; 

Plist फ़ाइल के माध्यम से में पढ़ सकते हैं सदस्य हैं

SavedGame जो एक बूलियन एप्लिकेशन यदि बताने के लिए है वहाँ वास्तव में मान्य डेटा यहाँ है (अगर वे एक खेल के बीच में ऐप से बाहर निकलते नहीं किया, मैं अपने एक पुनर्स्थापित होने के लिए प्वाइंट नहीं करना चाहती।

स्कोर जो एक NSNumber। समय जो एक NSNumber

है

प्लेफील्ड जो NSNumbers की एक 16 तत्व सरणी है

मैं NSDictionary के अंदर उन तत्वों को कैसे एक्सेस करूं?

उत्तर

26

[NSDictionary objectForKey:]

कहाँ कुंजी plist में सदस्य का नाम है की कोशिश करो।

उदाहरण के लिए:

BOOL save = [[dictionary2 objectForKey:@"SavedGame"] boolValue]; 

बचाने नामक एक नया BOOL में कुंजी SavedGame के लिए plist में संग्रहीत वस्तु स्टोर करेगा।

मैं मान लें कि आपकी SavedGame बूलियन वास्तव में, एक NSNumber रूप NSDictionary में संग्रहित है इसलिए boolValue के उपयोग NSNumber की बूलियन मान प्राप्त करने।

इस दस्तावेज़ को आजमाएं: Apple NSDictionary Reference

+5

हमेशा -objectForKey का उपयोग करें: आप सीधे फोन कर रहे हैं - अगर आप दस्तावेज़ों को पढ़ते हैं, -valueForKey: कुंजी-मूल्य अवलोकन और कोको बाइंडिंग के लिए उपयोग किया जाता है। यह गलत परिणाम नहीं लौटाएगा, लेकिन इस मामले में यह अनावश्यक काम करता है। –

2

बूल मान की स्थापना के लिए उपयोग कर सकते हैं:

[Dictionary setBool:TRUE forKey:@"preference"];

बूल मान रही के लिए आप उपयोग कर सकते हैं:

[Dictionary boolForKey:@"preference"];

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