NSDictionary с целочисленными значениями
Я работаю над игрой с монстрами. У каждого есть список характеристик, которые все будут целочисленными. Я могу настроить каждую статистику как собственную переменную, но я предпочитаю хранить их в NSDictionary, поскольку все они связаны между собой. Я сталкиваюсь с проблемой, когда пытаюсь изменить значение каждого показателя.
What I Have:
-(id) init {
self = [super init];
if(self) {
stats = [NSDictionary dictionaryWithObjectsAndKeys:
@"Attack", 0,
@"Defense", 0,
@"Special Attack", 0,
@"Special Defense", 0,
@"HP", 0, nil];
}
return self;
}
What I want to do
-(void) levelUp {
self.level++;
[self.stats objectForKey:@"Attack"] += (level * 5);
[self.stats objectForKey:@"Defense"] += (level * 5);
[self.stats objectForKey:@"Special Attack"] += (level * 5);
[self.stats objectForKey:@"Special Defense"] += (level * 5);
[self.stats objectForKey:@"HP"] += (level * 5);
}
Error I'm Getting
Arithmetic on pointer to interface 'id', which is not a constant size in non-fragile ABI
Поэтому мне кажется очевидным, что причина, по которой я получаю проблему, состоит в том, что я получаю объект, возвращенный из objectForKey вместо целого числа. Поэтому я попытался выполнить метод intValue для объекта, который я получаю, но это дало мне еще одну ошибку, а именно:
Assigning to 'readonly' return result of an objective-c message not allowed
У меня нет идей, как это исправить. Любая помощь? Было бы лучше просто отказаться от идеи хранить их все вместе и просто использовать свойство int для каждой статистики?