时间:2011-06-01 05:28:55

标签: iphone nsmutablearray

如何解决以下类型的警告?

  • NSMutableArray可能无法响应objectForKey。
  • UISwitch可能无法响应setAlternateColors:

我的切换代码是:

[mySwitch setAlternateColors:YES];

和For Array是:

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 个答案:

答案 0 :(得分:4)

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 :(得分:1)

objectForKeyNSDictionary的实例方法。您正在NSMutableArray上使用它。

答案 2 :(得分:1)

尝试使用此代码......

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];

...谢谢

答案 3 :(得分:0)

编译器抱怨UISwitch,因为该对象不包含setAlternateColors消息。 setAlternateColors实际上是私有API的一部分,因此如果您使用此消息,Apple将拒绝您的应用。

正如其他答案所指出,objectForKey是NSDictionary上的邮件,而不是NSMutableArray

答案 4 :(得分:0)

NSMutableArray没有objectForKey方法。使用NSMutableDictionary