2011-04-13 14 views
7

एक .plist फ़ाइल वास्तव में क्या है और मैं इसका उपयोग कैसे करूं? जब मैं इसे xcode में देखता हूं, तो ऐसा लगता है कि मुझे कुछ एक्सएमएल कोड दिखाकर कुछ प्रकार का टेम्प्लेट उत्पन्न होता है। क्या कोई तरीका है कि मैं एक सरणी में सामग्री को दबाकर एक प्लेस्ट फ़ाइल में डेटा निकाल सकता हूं? साथ ही, मैं .plist के स्रोत को कहां देख सकता हूं?प्लिस्ट: यह क्या है और इसका उपयोग कैसे करें

उत्तर

13

आप आसानी से निम्नलिखित कोड का उपयोग करके एक सरणी में एक plist की सामग्री को प्राप्त कर सकते हैं (

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"plist"]; 
contentArray = [NSArray arrayWithContentsOfFile:filePath]; 

एक plist सिर्फ एक एक्सएमएल फ़ाइल जो से मेल खाती है है: हम यहाँ 'file.plist' नामक फ़ाइल कि Xcode प्रोजेक्ट का हिस्सा) है खोल रहे हैं कुछ DTD (डेटाप्रकार शब्दकोश) एप्पल द्वारा डिजाइन, DTD यहाँ देखा जा सकता:

http://www.apple.com/DTDs/PropertyList-1.0.dtd

DTD -among अन्य चीजों का वर्णन करता है "वस्तुओं" और डेटाटाइप्स कि एक्सएमएल फ़ाइल शामिल कर सकते हैं ।

7

प्लास्ट संपत्ति सूची के लिए छोटा है। यह डेटा स्टोर करने के लिए ऐप्पल द्वारा उपयोग की जाने वाली एक फ़ाइल प्रकार है।

आप यहाँ अधिक जानकारी प्राप्त कर सकते हैं:

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man5/plist.5.html

आप plists में पढ़ना चाहते हैं यहाँ की जाँच करें:

// Get the location of the plist 
// NSBundle represents the main application bundle (.app) so this is a shortcut 
// to avoid hardcoding paths 
// "Data" is the name of the plist 
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"]; 

// NSData is just a buffer with the binary data 
NSData *plistData = [NSData dataWithContentsOfFile:path]; 

// Error object that will be populated if there was a parsing error 
NSString *error; 

// Property list format (see below) 
NSPropertyListFormat format; 

id plist; 

plist = [NSPropertyListSerialization propertyListFromData:plistData 
           mutabilityOption:NSPropertyListImmutable 
           format:&format 
           errorDescription:&error]; 

plist हो सकता है जो कुछ भी plist में शीर्ष स्तर कंटेनर था। उदाहरण के लिए, यदि प्लिस्ट एक शब्दकोश था तो plistNSDictionary होगा। plist एक सरणी था यदि यह एक NSArray

यहाँ प्रारूप enum होगा:

enum { 
    NSPropertyListOpenStepFormat = kCFPropertyListOpenStepFormat, 
    NSPropertyListXMLFormat_v1_0 = kCFPropertyListXMLFormat_v1_0, 
    NSPropertyListBinaryFormat_v1_0 = kCFPropertyListBinaryFormat_v1_0 
}; NSPropertyListFormat; 

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/PropertyLists/SerializePlist/SerializePlist.html.html

+1

कोड के लिए धन्यवाद। क्या आप मुझे लाइन से लाइन बता सकते हैं कि आप यहां क्या कर रहे हैं? इसके अलावा मुझे यकीन नहीं है कि इनमें से कुछ डेटाटाइप क्या हैं (एनएसबंडल, एनएसडीटा, एनएसपीप्रर्टी लिस्टफॉर्मैट, एनएसपीप्रर्टी लिस्टसेरियलाइजेशन)। – locoboy

+0

@ cfarm54 मैंने कुछ और इनलाइन टिप्पणियों के साथ अपनी पोस्ट अपडेट की – AdamH

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