2014-02-05 52 views
0

我已經有這個名爲finalArray的NSMutableArray,我添加名稱和圖像。通過數據搜索多維數組

[finalArray addObject:@[name, image]]; 

在以下方法中通過finalarray搜索,但因爲它不期望多維數組它似乎給出了一個錯誤。我怎麼能在這樣的代碼:

self.filteredArray = [[finalArray filteredArrayUsingPredicate:predicate] mutableCopy]; 

獲得來自finalArray的所有名稱的對象?因爲這是這段代碼期望:

[[finalArray filteredArrayUsingPredicate:predicate] 

方法:

-(void) searchThroughdata { 

    self.filteredArray = nil; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [c] %@",self.searchBar.text]; 


    self.filteredArray = [[finalArray filteredArrayUsingPredicate:predicate] mutableCopy]; 

      [tableViewData reloadData]; 



} 

如何添加屬於該名稱在finalarray,仍然只能通過尋找像它現在做的圖像有了這個?

[[finalArray filteredArrayUsingPredicate:predicate] mutableCopy]; 
+0

我不明白。 '[finalArray addObject:name];'不搜索數組。它只是將一個對象添加到可變數組的末尾。多維數組的結構是什麼?請你可以在更高層面解釋你正在嘗試做什麼。 – Fogmeister

+0

請再次檢查:) – user3258468

+0

好吧,現在有道理:)我的答案仍然有效。使用自定義對象。 – Fogmeister

回答

0

它看起來像你試圖通過使用相同的數組或索引索引名稱和圖像相互關聯?我對嗎?

如果是這樣,那麼你真的應該使用自定義的類來做到這一點...

@interface MyNameImageClass : NSObject 

@property NSString *name; 
@property UIImage *image; 

@end 

現在你可以創建對象...

MyNameImageClass *object = [MyNameImageClass new]; 
object.name = theName; 
object.image = theImage; 

然後,只需添加這一個array ...

[finalArray addObject:object]; 

儘管如此,你需要澄清你在問什麼。這個問題很混亂。

通過這樣做,如果圖像更新對象,你不需要重新插入到數組中。該數組存儲對該對象的引用,所以該數組也將具有更新的值。

+0

從這裏我怎麼得到finalArray的所有object.name值? – user3258468

+1

@ user3258468你會做'MyNameImageClass * myImg = finalArray [someIndex];''然後'myImg.name'將會訪問這個名字。 – jamone