2010-08-18 113 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

相关问题