簡體   English   中英

從plist創建NSArray

[英]Create NSArray from plist

我試圖從一個plist創建一個NSArray,但由於某種原因,該數組從未初始化。

繼承人的代碼-

NSString * path = [[NSBundle mainBundle] pathForResource:@"defaultWorkouts2" ofType:@"plist"];

    NSLog(@" ------ %@", path);

    NSArray * defaultWorkouts = [[NSArray alloc] initWithContentsOfFile:path];

    NSLog(@" ------ %@", defaultWorkouts);

這是控制台輸出-

2011-04-24 16:17:26.732 IntervalTimer[9778:207] ------ file://localhost/Users/darrenfindlay/Library/Application%20Support/iPhone%20Simulator/4.3/Applications/8FAC4993-D1BA-460F-9A56-8A6984CB8AB6/IntervalTimer.app/defaultWorkouts.plist 2011-04-24 16:17:26.733 IntervalTimer[9778:207] ------ (null))

這是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>Boxing</key>
    <array>
        <integer>8</integer>
        <string>Sparring</string>
        <array>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
        </array>
        <array>
            <string>Round 1</string>
            <string>Rest, Round 2 next</string>
            <string>Round 2</string>
            <string>Rest, Round 3 next</string>
            <string>Round 3</string>
            <string>Rest, Round 4 next</string>
            <string>Round 4</string>
            <string>Rest, Round 5 next</string>
            <string>Round 5</string>
            <string>Rest, Round 6 next</string>
            <string>Round 6</string>
            <string>Rest, Round 7 next</string>
            <string>Round 7</string>
            <string>Rest, Round 8 next</string>
            <string>Round 8</string>
        </array>
    </array>
    <key>Boxing - 2</key>
    <array>
        <integer>8</integer>
        <string>Sparring</string>
        <array>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
        </array>
        <array>
            <string>Round 1</string>
            <string>Rest, Round 2 next</string>
            <string>Round 2</string>
            <string>Rest, Round 3 next</string>
            <string>Round 3</string>
            <string>Rest, Round 4 next</string>
            <string>Round 4</string>
            <string>Rest, Round 5 next</string>
            <string>Round 5</string>
            <string>Rest, Round 6 next</string>
            <string>Round 6</string>
            <string>Rest, Round 7 next</string>
            <string>Round 7</string>
            <string>Rest, Round 8 next</string>
            <string>Round 8</string>
        </array>
    </array>
    <key>Boxing - 3</key>
    <array>
        <integer>8</integer>
        <string>Sparring</string>
        <array>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
            <integer>60</integer>
            <integer>150</integer>
        </array>
        <array>
            <string>Round 1</string>
            <string>Rest, Round 2 next</string>
            <string>Round 2</string>
            <string>Rest, Round 3 next</string>
            <string>Round 3</string>
            <string>Rest, Round 4 next</string>
            <string>Round 4</string>
            <string>Rest, Round 5 next</string>
            <string>Round 5</string>
            <string>Rest, Round 6 next</string>
            <string>Round 6</string>
            <string>Rest, Round 7 next</string>
            <string>Round 7</string>
            <string>Rest, Round 8 next</string>
            <string>Round 8</string>
        </array>
    </array>
</dict>
</plist>

在此先感謝您的幫助,這使我發瘋。

如果查看plist文件,則該文件包含一個NSDictionary而不是NSArray 您應該將實現更改為:

NSDictionary * defaultWorkouts = [[NSDictionary alloc] initWithContentsOfFile:path];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM