- (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];处放置断点时)几乎总是为null,除非在某些情况下实际上装载了18个键值对。关于为什么它几乎总是为空的任何想法?

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

最佳答案

如果您的数据是NSMutableDictionary,请使用以下代码,

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]];
}

希望对您有所帮助

10-08 15:04