Я пытаюсь назначить объекты в NSMutableDictionary, где ключи объектов увеличиваются, но я продолжаю получать значение 2, назначенное в качестве ключа. Как я должен увеличивать ключ каждый раз, когда объект сохраняется в словаре?Как увеличить ключ в NSMutableDictionary
Вот мой метод:
-(void)addToMutableDictionary:(NSString*)value
{
//declare variable
int keyNum = 1;
keyNum +=1;
NSNumber *number = [NSNumber numberWithInt: keyNum];
int numToInc = [number intValue];
number = [NSNumber numberWithInt:numToInc];
//Then I'm adding to the Dictionary:
[dictionary setObject:value forKey:number];
}
мой Ouput всегда:
Номер ключа всегда 2.
-----> как я получил его на работу
// declare variable outside so that's its incremented and not reset to
// 0 every time the function is executed.
int keyNum = 0;
-(void)addToMutableDictionary:(NSString*)value
{
keyNum +=1;
NSNumber *number = [NSNumber numberWithInt: keyNum];
int numToInc = [number intValue];
number = [NSNumber numberWithInt:numToInc];
//Then I'm adding to the Dictionary:
[dictionary setObject: object forKey:number];
}
Вы всегда получаете 2, потому что всегда делаете 1 + 1. Вы никогда не ссылаетесь на объект, который уже может быть в словаре или самом словаре, в процессе создания номера. Рассмотрите возможность использования '[dictionary count]' как значения 'origNumber'. – zneak
'number' * is * 2 при добавлении объекта в словарь. Почему вы ожидаете другого результата? –
Я также пробовал origNum + = 1; хотя он остается на 2. @Martin R –