0

在 iPhone 的 cocos2d 中,有没有办法将以下内容变成一个 for 循环,以便可以指定一个值范围?目前,它只是遍历所有值(但顺序不正确)。

// plist file 
NSString * file                 = @"myproperties";
NSString * dictPath             = [[NSBundle mainBundle] pathForResource:file 
                                                         ofType:@"plist"];

// get dictionary
NSMutableDictionary * dictPlist = [[NSMutableDictionary alloc] 
                                   initWithContentsOfFile:dictPath];

NSEnumerator *enumerator = [dictPlist objectEnumerator ];
id value;
while ((value = [enumerator nextObject])) {
    CCLog("Test: @%", [value objectForKey:@"Name"]);
}

我希望能够只打印一系列项目,比如 10 到 15(按照数据在列表中的顺序)。怎样才能做到这一点?


编辑:如果我想使用数组而不是字典(以保持顺序),我需要如何更改以下列表?

<?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>personTom</key>
    <dict>
        <key>Name</key>
        <string>Tom</string>
        <key>Age</key>
        <integer>30</integer>
    </dict>
    <key>personJames</key>
    <dict>
        <key>Name</key>
        <string>James</string>
        <key>Age</key>
        <integer>45</integer>
    </dict>
    <!-- (...) -->
</dict>
</plist>
4

1 回答 1

1

遍历 NSDictionary 元素会为您提供随机顺序的元素。字典未排序。

如果排序对您很重要,请使用 NSArray 存储您的元素并对其进行排序。或者,您可以读取所有字典的键并将它们放在临时 NSArray 中,然后对该数组进行排序,遍历数组中的键以按排序顺序获取字典的值。

于 2012-07-21T18:56:41.107 回答