我有一個包含NSDictionaries的NSMutableArray * dataArray。如果searchString匹配其中一個字典值,我想遍歷數組以創建一個新的NSMutableArray * tempDataArray與來自第一個數組的對象。遍歷數組比較字典值
這裏是我的代碼:
self.tempDataArray = [[NSMutableArray alloc] init];
for (int i = 0; i < kDelegate.dataArray.count; i++) {
NSDictionary *dict = [kDelegate.dataArray objectAtIndex:i];
for (int j = 0; j < [dict allValues].count ; j++) {
if ([[[[dict allValues] objectAtIndex:j]stringValue] isEqualToString:searchString]) {
[self.tempDataArray addObject:dict];
}
}
}
現在,這並不工作,因爲字典中還含有的NSDate。至少,這就是我從錯誤信息閱讀:
-[__NSTaggedDate stringValue]: unrecognized selector sent to instance 0x41b7809e2600000d
這一點我不明白,因爲我不聲明所有值stringValue的。
這是我的問題的第一部分。第二部分是,它只搜索完全匹配,但我寧願有一個搜索來確定字典值是否包含子字符串。
無論如何,感謝您的幫助!
你是什麼意思的 「聲明所有的值作爲stringValue的」 嗎?這沒有意義......另外,請閱讀異常消息。它告訴你,你正在試圖將'stringValue'消息發送給一個'NSDate',當然它沒有實現。 – 2013-07-05 14:46:59
我的意思是這樣一行:'[[[所有值] objectAtIndex:j] stringValue]' 不應該照顧日期並將其轉換爲字符串值嗎? – freshking