Как решить NSMutableArray может не отвечать на ObjectForKey - PullRequest
1 голос
/ 01 июня 2011

Как разрешить следующий тип предупреждения?

  • NSMutableArray может не отвечать на objectForKey.
  • UISwitch может не отвечать на setAlternateColors:

Мой код для коммутатора:

[mySwitch setAlternateColors:YES];

и для массива:

NSMutableArray *tmp1 = [sortedIndexedArray  objectAtIndex:indexPath.section];
NSMutableArray *tmpDict2 = [tmp1 objectAtIndex:indexPath.row];
NSString *companyNameString =  [tmpDict2 objectForKey:@"firstname"];
NSString *flName = [tmpDict2 objectForKey:@"title"];
[searchCustomCell setDataForEvent1:companyNameString venue:flName];

Ответы [ 5 ]

4 голосов
/ 01 июня 2011

NSMutableArray не отвечает на -objectForKey:.Ваше имя переменной "tmpDict2" вводит в заблуждение;массив не является словарем.

Массив хранит упорядоченный список объектов;В словарях хранится неупорядоченное отображение ключей на значения (объекты).Таким образом, -objectForKey: относится только к NSDictionary.

Возможно, вы хотите этого?Я не могу быть точно уверен, основываясь на том, что вы предоставили ...

NSDictionary *tmp1 = [sortedIndexedArray objectAtIndex:indexPath.section];
NSDictionary *tmpDict2 = [tmp1 objectAtIndex:indexPath.row];

Что касается вашего переключателя, возможно, вы сделали собственный подкласс UISwitch, который отвечает на -setAlternateColors:?В этом случае попробуйте использовать [(MyUISwitchSubclass *)mySwitch setAlternateColors:YES] или просто сделать переменную mySwitch типа MyUISwitchSubclass *.С другой стороны, если это частный метод, вам следует избегать его использования в своем приложении.

В общем, я не могу точно сказать, что вы пытаетесь сделать, если вы не предоставите еще немногоинформация и контекст.

1 голос
/ 24 февраля 2013

Попробуйте по этому коду ...

NSMutableArray *tmp1 = [sortedIndexedArray  objectAtIndex:indexPath.section];

NSDictionary *tmpDict2 = [tmp1 objectAtIndex:indexPath.row];

NSString *companyNameString =  [tmpDict2 objectForKey:@"firstname"];

NSString *flName = [tmpDict2 objectForKey:@"title"];

[searchCustomCell setDataForEvent1:companyNameString venue:flName];

Спасибо ...

1 голос
/ 01 июня 2011

objectForKey - это метод экземпляра NSDictionary.Вы используете его на NSMutableArray.

0 голосов
/ 01 июня 2011

NSMutableArray не имеет objectForKey метода.Используйте NSMutableDictionary.

0 голосов
/ 01 июня 2011

Компилятор жалуется на UISwitch , потому что этот объект не содержит сообщения setAlternateColors.setAlternateColors на самом деле является частью частного API, поэтому если вы используете это сообщение, ваше приложение будет отклонено Apple.

Как указали другие ответы, objectForKey - это сообщение NSDictionary ,не NSMutableArray .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...