2016-05-06 2 views
0
- (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 пар ключ-значение. Любые мысли о том, почему он почти всегда равен нулю?NSDictionary загрузка информации из 18 пар ключ-значение всегда считывается как нуль вместо

Я передаю 0 для моего levelsIndex, а 'LevelsData' - это NSArray, который содержит 18 словарей пары ключевых значений.

+0

, что является переменной _data NSArray или NSDictionary –

+0

Пожалуйста, разместите свой файл plist. А также, на вашей точке останова, какова величина переменной уровня? –

ответ

1

если ваш _data является 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]]; 
} 

надеюсь, его полезной

+0

Теперь я могу прочитать информацию. Оказывается это потому, что моя инициализация для plist была только в моем классе Model (который является подклассом другой модели, которая подклассифицирована из NSObject). Казалось, все исправило. – Frank

0

Возможно, вы используете приложение в схеме «выпуска». Вы дважды проверяете? Пока вы получаете результат.

Чтобы проверить,

Нажмите на имя проекта рядом с кнопкой [Run]. > Редактировать Схема> Run> Build Configuration> Debug/Release

 Смежные вопросы

  • Нет связанных вопросов^_^