(我的英语不好)。
我有两个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;
怎么做?
答案 0 :(得分:1)
我建议你不要为这种逻辑制作数组。
您应该使用NSDictionary / NSMutableDictionary。
然后您可以通过NSPredicateFilter轻松过滤。
答案 1 :(得分: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"] ];
}
答案 2 :(得分: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了解更多信息