2016-03-30 5 views
0

Я хочу объявить и инициализировать NSMutableDictionary с помощью комбинации int: NSString.Хотите создать NSMutableDictionary с ключами как целые числа и объекты как строки в Objective-C

я объявил мой изменяемый словарь в контроллер заголовка файла вида следующим образом:

NSMutableDictionary *gameDictionary; 

И в viewDidLoad я инициализируется словарь:

gameDictionary = [[NSMutableDictionary alloc] init]; 

gameDictionary = @{@"1" : @"SquareOne", @"2" : @"SquareTwo", @"3" : @"SquareThree", @"4" : @"SquareFour", @"5" : @"SquareFive", @"6" : @"SquareSix", @"7" : @"SquareSeven", @"8" : @"SquareEight", @"9" : @"SquareNine"}; 

А в другой метод, который я пытался удалить объект в словаре, указав свой ключ:

[gameDictionary removeObjectForKey:@"1"]; 

Но когда я запускаю app Я получаю сообщение об ошибке: [__NSDictionaryI removeObjectForKey:]: непризнанный селектор, отправленный в экземпляр 0x7fe79b5c97a0

Я не понимаю, что я делаю неправильно, так как ключ правильный, поэтому их должно быть что-то неправильно с тем, как я инициализирую это может кто-то помочь мне?

+1

'gameDictionary = @ {...}' является (неизменным) 'NSDictionary'. Вам нужно что-то вроде 'gameDictionary = [@ {...} mutableCopy]' или задать каждый ключ/значение вручную. –

+0

Хорошо спасибо, теперь я понимаю. –

ответ

0
NSMutableDictionary *gameDictionary = [@{@1 : @"SquareOne", @2 : @"SquareTwo", @3 : @"SquareThree", @4 : @"SquareFour", @5 : @"SquareFive", @6 : @"SquareSix", @7 : @"SquareSeven", @8 : @"SquareEight", @9 : @"SquareNine"} mutableCopy]; 

и

gameDictionary[@1] = nil; 
+0

Хорошо, спасибо. Так что, пожалуйста, удалите код для удаления объекта? –

+0

@ Harsh.C: Он показал вам, как создать объект NSNumber. Это все, что вам нужно, превратить целое в NSObject. – gnasher729

+0

Да, я понимаю, поэтому я поставил вопросительный знак, чтобы указать, что он в порядке, он/она не ответил на мой вопрос в комментарии. –

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

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