1

(我英文不太好)。

我有两个 NSArray。

示例: 第一个 NSArray正在存储

NSArray category= { ID:1,Name:Category1;ID:2, Name: Category2;ID:3, Name:Category3;}

第二个 NSArray正在存储

 NSArray product= {cat_ID:1, Category-Name:Category1, product_ID:1, Name: Banana;
                cat_ID:1, Category-Name:Category1, product_ID:2, Name: apple;
                cat_ID:1, Category-Name:Category1, product_ID:3, Name: berry;
                cat_ID:2, Category-Name:Category2, product_ID:4, Name: cantaloupe;
                cat_ID:2, Category-Name:Category2, product_ID:5, Name: elderberry;
                cat_ID:2, Category-Name:Category2, product_ID:6, Name: ginger;
                cat_ID:2, Category-Name:Category2, product_ID:7, Name: watermelon;
                cat_ID:3, Category-Name:Category3, product_ID:8, Name: xigua;
                cat_ID:3, Category-Name:Category3, product_ID:9, Name: avocado;
                cat_ID:3, Category-Name:Category3, product_ID:10, Name: basil;
                cat_ID:3, Category-Name:Category3, product_ID:11, Name: alfalfa;
                cat_ID:3, Category-Name:Category3, product_ID:12, Name: blackcurrant;}

我想要的是如果类别名称(我的意思是第一个 NSArray category.name)等于第二个 NSArray 的类别名称(我的意思是 product.Category-Name)然后打印所有产品名称。 示例:category.name== Category1;那么结果将是Product.Name = Banana, Apple, Berry;

这该怎么做?

4

3 回答 3

1

我建议您不要为这种逻辑制作 Array 。

你应该使用 NSDictionary/NSMutableDictionary。

然后您可以通过 NSPredicateFilter 轻松过滤。

于 2012-12-05T06:54:44.403 回答
0

根据您的类似 json 的表示法,我们将假设 "{...}" 中的键值对是 NSDictionary 对象。你有一个说 NSDictionary 对象的数组,“[{...},{...},...]”

要获取给定类别的产品:

NSString *category = @"Category1";
NSArray *result = [NSArray array];
for (NSDictionary *dic in products) {
    if ([[dic objectForKey:@"Category-Name"] isEqualToString: category])
        result = [result arrayByAddingObject: [dic objectForKey: @"Name"] ];
}
于 2012-12-05T07:01:22.090 回答
0

您还可以使用紧凑的方式完成此任务NSPredicate

NSString *selectedCategory = @"Category1";

//filter array by category using predicate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Category-Name == %@", selectedCategory];

NSArray *filteredArray = [product filteredArrayUsingPredicate:predicate];  

或关注我的博客rajneesh071.blogspot.in了解更多信息

于 2012-12-05T09:46:37.500 回答