读取在NSDictionary类型的对象上找不到的数组元素的预期方法*

时间:2016-05-05 05:25:09

标签: ios objective-c nsdictionary

我知道有很多这样的问题,但我认为我的情况有点不同。

    int i = 0;
    while (_data[@"VerticalState%i", i] != nil) {
        // do things
        i++;
    }

例如,具有3个VerticalState属性的一个“级别”将实现为:VerticalState0,VerticalState1,VerticalState2。

我想在上面使用while循环条件读取这些值,并且当i = 3时它应该停止。我怎样才能使代码的思想在上面工作(显然有一些其他配置)。仅供参考,_data是一个NSDictionary*实例变量,已经加载了plist信息。

1 个答案:

答案 0 :(得分:2)

您似乎想要从字符串格式创建字典键。您需要使用NSString stringWithFormat:

while (_data[[NSString stringWithFormat:@"VerticalState%i", i]] != nil) {

虽然像这样编写循环会更好:

int i = 0;
while (1) {
    NSString *key = [NSString stringWithFormat:@"VerticalState%i", i];
    id value = _dict[key];
    if (value) {
        // do things
        i++;
    } else {
        break;
    }
}