2010-08-18 108 views
0

我怎麼能問一個數組,如果它包含一個項目,如果它做到[[NSArray alloc] initWithObjects:@「這些對象」自動。 這是我最喜歡的.h如何查詢一個數組是否包含對象?

@interface FavoriteViewController : UITableViewController { 
    NSMutableArray *favoritesArray; 
    NSMutableArray *didContain; 
} 
@property (nonatomic, retain) NSMutableArray *favoritesArray; 

@property (nonatomic, retain) NSMutableArray *didContain; 

這是.M

favoritesArray = [[NSMutableArray alloc]init]; 
didContain = [[NSMutableArray alloc]init]; 

if 
([favoritesArray containsObject:@"one"]) 
{ 

    [didContain addObject:@"one"]; 
} 

,並在詳細視圖controller.mi有這樣的代碼

[[NSMutableArray alloc] init]; 
[favoritesArray addObject: @"one"]; 

我得到的表工作然而什麼都沒有顯示出來....

回答

0
NSArray *yourArray = [[NSArray alloc] initWithObjects:@"Hello", @"World", nil]; 
    NSMutableArray *didContain = [[NSArray alloc] init]; 


    if([yourArray contains: @"Hello"]) 
{ 
     [didContain addObject:@"Hello"]; 
} 

NSArray *yourArray = [[NSArray alloc] initWithObjects:@"Hello", @"World", nil]; 
    NSMutableArray *didContain = [[NSArray alloc] init]; 

    [didContain addObject: [yourArray objectAtIndex:[yourArray indexOfObject:@"Hello"]]; 

所有的這一切,更是在蘋果文檔一應俱全。下次請首先做一些谷歌搜索。祝你好運,希望這會有幫助。

+0

但是,你需要,如果你的數組包含你正在尋找的對象不止一個來調整上面的代碼。 – Jordan 2010-08-18 17:58:21

+0

第一個例子中,我需要在表視圖數據或「您的數組」中使用didContain。 我會通過添加其他如果正確調整它? – 2010-08-18 18:04:50

+0

你真的要使用循環結構,並可能聲明你正在尋找的另一個對象數組。循環查看包含您要查找的對象的數組,看看它們是否包含在「yourArray」中,然後是否將它們複製到「didContain」 – 2010-08-19 12:58:06

0

使用filteredArrayUsingPredicate:NSArray Class ReferencePredicate Programming Guide

看來,你想在您的詳細視圖控制器使用未初始化的屬性。

通常情況下,你初始化你init:viewDidLoad的方法實現的屬性,然後在你的父視圖控制器呈現視圖之前,設置使用屬性屬性訪問

這條線:

// DetailViewController.m initializer code 
[[NSMutableArray alloc] init]; // returned object is not used 

應:

favoritesArray = [[NSMutableArray alloc] init]; // view controller initialization code 

而不是調用它:

[favoritesArray addObject:@"one"]; 

在您建立detailViewController與過濾陣列設置favoritesArray

// FavoriteViewController.m 
MyDetailViewController *dvc = [[MyDetailViewController alloc] initWithNibName:@"MyDetailViewController" bundle:nil]; 

// populate the array 
[dvc setFavoritesArray:didContain]; 

// Assuming you are using a navigation controller 

[navigationController pushViewController:dvc animated:YES]; 
[dvc release]; 
+0

偉大的這有助於我如何在不同的地方添加不同對象的數組,我似乎無法得到它加載項目。我在按鈕中使用addobject方法在點擊按鈕時將項目添加到數組中。那麼我怎樣才能加載完整的數組沒有initwithobjects? – 2010-08-18 21:01:34

+0

你將不得不顯示你的代碼。 – falconcreek 2010-08-18 21:08:07

+0

Sry for bad formating我在iPhone上的這是客觀的C我有代碼[[NSMutableArray alloc] init]的ibaction; [favoritesArray addObject:@「one」]; //在fav表中查看這段代碼// favoritesarray = [[NSMutableArray alloc] init]; didContain = [[NSMutableArray alloc] init];如果([favoritesarray包含:@「one」]); {[didContain addObject:@「trial」]; }然而,它在if部分崩潰... – 2010-08-18 21:19:38

相關問題