NSDictionary加载18个键值对的信息总是读作nil

时间:2016-05-06 04:57:26

标签: ios objective-c xcode nsdictionary

    - (instancetype)initWithDestinationIndex:(NSUInteger)levelsIndex {
          NSString* filepath = [[NSBundle mainBundle]
                          pathForResource:@"Levels" ofType:@"plist"];
          NSDictionary *levels = [NSDictionary dictionaryWithContentsOfFile:filepath];
          NSArray *levelsArray = levels[@"LevelsData"];
          _data = levelsArray[levelsIndex];
          [_verticalB setToInitialStateVertical];
          return self;
    }

我有一个plist,它应该加载18个键值对的信息。类型_data实例变量的NSDictionary(当我运行程序并在该行_data = levelsArray[levelsIndex];处设置断点时)几乎总是为空,除非有一次它实际上有18加载的键值对。有什么想法为什么它总是空的?

我为我的levelsIndex传递0,并且' LevelsData'是NSArray,它包含18个键值对字典。

2 个答案:

答案 0 :(得分:1)

如果您的_data为NSMutableDictionary *_data = [[NSMutableDictionary alloc] init]; [_data setObject:[levelsArray objectAtIndex: levelsIndex] forKey:[NSString stringWithFormat:@"%d", levelsIndex]]; ,请使用以下代码

for(int i=0; i<[levelsArray count]; i++){
    [_data setObject:[levelsArray objectAtIndex:i] forKey:[NSString stringWithFormat:@"%d",i]];
}

Parse.Cloud.beforeSave(Parse.User, function(request, response) {
    var user = request.object;
    if(user.isNew()){
        user.set('key', value);
    }
    response.success();
});

希望它有用

答案 1 :(得分:0)

您可能正在以“发布”方案运行应用程序。你仔细检查一下吗?只要你得到结果。

要检查,

  

单击[运行]按钮旁边的项目名称。 &GT;编辑方案&gt;运行&gt;构建配置&gt;调试/发布