سؤال

وأريد أن أكون قادرة على استخدام PLIST لإعدادات ايم تنفيذ في تطبيقي. اريد القاموس "الإعدادات" لعقد صفائف بلدي، مثل "تصحيح"، "الخيار 1"، الخيار 2 "، الخ. كيف يمكنني الوصول إلى" تصحيح "مجموعة تحت عنوان" القاموس الإعدادات "؟

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *myPlistPath = [documentsDirectory stringByAppendingPathComponent:@"ProfileManager.plist"]; 
NSDictionary *plistDict = [[NSDictionary alloc] initWithContentsOfFile:myPlistPath]; 

swDebug.on = [plistDict objectForKey:@"Debug"];

.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"     "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Current Profile</key>
<string>Sample Profile</string>
<key>Custom Profiles</key>
<array>
    <dict>
        <key>autolock</key>
        <false/>
        <key>bluetooth</key>
        <false/>
        <key>desc</key>
        <string>Example profile provided by the application</string>
        <key>edge</key>
        <false/>
        <key>phone</key>
        <false/>
        <key>push</key>
        <false/>
        <key>ringtone</key>
        <string>Example.m4r</string>
        <key>threeg</key>
        <false/>
        <key>title</key>
        <string>Example Profile</string>
        <key>vibrate</key>
        <false/>
        <key>wifi</key>
        <false/>
    </dict>
    <dict>
        <key>autolock</key>
        <false/>
        <key>bluetooth</key>
        <false/>
        <key>desc</key>
        <string>Sample profile provided by the application</string>
        <key>edge</key>
        <false/>
        <key>phone</key>
        <false/>
        <key>push</key>
        <false/>
        <key>ringtone</key>
        <string>Sample.m4r</string>
        <key>threeg</key>
        <false/>
        <key>title</key>
        <string>Sample Profile</string>
        <key>vibrate</key>
        <false/>
        <key>wifi</key>
        <false/>
    </dict>
</array>
<key>Settings</key>
<dict>
    <key>Debug</key>
    <string>ON</string>
</dict>
</dict>
</plist>
هل كانت مفيدة؟

المحلول

في المثال الخاص بك التصحيح هو سلسلة، وليس مجموعة (وهو ما يبدو أن أقول لك أنه في هذا السؤال). في أي حال، فإن المسألة هي أن يتم الوصول إلى المفتاح في ديكت الخطأ. لديك:

swDebug.on = [plistDict objectForKey:@"Debug"];

وأنت ستحتاج:

swDebug.on = [[plistDict objectForKey:@"Settings"] objectForKey:@"Debug"];

ومنذ إعدادات هو قاموس داخل بليست القاموس.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top