无法从Info.plist文件中获取多个键阵列

时间:2017-10-27 08:03:34

标签: objective-c xcode nsmutablearray info.plist

我正在尝试在我的Info.plist中针对两个键获取两个数组,而不是在我的输出中获取任何数据。这是我的代码。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0),^{
        NSString *post = [NSString stringWithFormat:@"URL"];
        NSDictionary *dTmp = [[NSDictionary alloc] initWithContentsOfURL:[NSURL URLWithString:post]];
        NSMutableArray *OriginalDetailsArray=[dTmp valueForKey:@"Objects"];
        NSMutableArray *OriginalGalleryArray=[dTmp valueForKey:@"gallery"];
        detailsArray=[[NSMutableArray alloc] init];
        [detailsArray addObjectsFromArray:OriginalDetailsArray];
        galleryArray=[[NSMutableArray alloc] init];
        [galleryArray addObjectsFromArray:OriginalGalleryArray];

        dispatch_async(dispatch_get_main_queue(), ^{
            NSLog(@"%@, %@",detailsArray, galleryArray);
        });
    });

Out Put is:您可以看到输出中没有任何内容只是空括号。

 (
), (
)

这是我的Info.plist文件。如果我删除第二个阵列"画廊"我只让#34;对象"数据完美呈现。但是在添加Second Array之后它会给出空输出。

<plist version="1.0">
<dict>
<key>Objects</key>
<array>
<dict>
<key>propid</key>
<integer>233</integer>
<key>title</key>
<string>101 Perthshire Private</string>
<key>type</key>
<string>For Sale</string>
<key>price</key>
<string>$899,900</string>
<key>bed</key>
<string>2</string>
<key>bath</key>
<string>3</string>
</dict>
</array>
</dict>

<dict>
<key>gallery</key>
<array>
<dict>
<key>imageurl</key>
<string>
/images/23330.jpg
</string>
</dict>
<dict>
<key>imageurl</key>
<string>
/images/23333.jpg
</string>
</dict>
<dict>
<key>imageurl</key>
<string>
/images/23339.jpg
</string>
</dict>
</array>
</dict>
</plist>

2 个答案:

答案 0 :(得分:2)

您的plist数据表格错误。请将以下代码放在您的php文件中并进行检查。

<plist version="1.0">
    <dict>
        <key>Objects</key>
        <array>
            <dict>
                <key>propid</key>
                <integer>233</integer>
                <key>title</key>
                <string>101 Perthshire Private</string>
                <key>type</key>
                <string>For Sale</string>
                <key>price</key>
                <string>$899,900</string>
                <key>bed</key>
                <string>2</string>
                <key>bath</key>
                <string>3</string>
            </dict>
        </array>
        <key>gallery</key>
        <array>
            <dict>
                <key>imageurl</key>
                <string>/images/23330.jpg</string>
            </dict>
            <dict>
                <key>imageurl</key>
                <string>/images/23333.jpg</string>
            </dict>
            <dict>
                <key>imageurl</key>
                <string>/images/23339.jpg
                </string>
            </dict>
        </array>
    </dict>
</plist>

答案 1 :(得分:0)

请尝试下面的代码,我得到了结果。

NSArray * arrayObjects = [NSArray arrayWithArray:[dictRoot objectForKey:@&#34; Objects&#34;]];

NSArray * arrayGallery = [NSArray arrayWithArray:[dictRoot objectForKey:@&#34; gallery&#34;]];

<form method="post" action="process.php">
<label class="control-label col-sm-3" for="inputSuccess3">Paket:</label>
<div class="col-sm-9">
    <select class="form-control" id="Paket" name="paket">
    </select>
</div>

<label class="control-label col-sm-3" for="inputSuccess3">Miktar:</label>
<div class="col-sm-9">
    <input class="form-control" type="number" id="adet" name="adet" min="20" max="250" value="20" required>
</div>

<label class="control-label col-sm-3" for="inputSuccess3">Link:</label>
<div class="col-sm-9">
    <input class="form-control" type="text" name="link" required>
</div>

<div class="col-sm-offset-4 col-sm-8">
Ücret: <span id="output">40</span> Kredi
</div>
<div class="col-sm-offset-3 col-sm-9">
<button type="submit" class="btn btn-primary" onclick="alert('Hello\nHow are you?')">Gönder</button>
<script>
    function myFunction() {
    confirm("Press a button!");
    }
</script>
</div>
</form>