2011-06-01 46 views
1

如何解決以下類型的警告?如何解決NSMutableArray可能不響應ObjectForKey

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

回答

0

編譯器抱怨爲UISwitch因爲該對象不包含setAlternateColors消息。 setAlternateColors實際上是私有API的一部分,因此如果您使用此消息,您的應用將被Apple拒絕。

正如其他答案指出objectForKey是NSDictionary上的消息,而不是NSMutableArray

1

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

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

setAlternateColors實際上是一個私人API消息(不是自定義子類),所以他絕對不應該使用這個。 :) – RedBlueThing 2011-06-01 05:39:02

+0

感謝給我答案。 – Allen 2011-06-01 06:27:32

0

NSMutableArray沒有objectForKey方法。使用NSMutableDictionary

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

謝謝...

相關問題