if(arrSubCategory.count>0||arrSubCategory!=Nil)
{
for (NSDictionary *dicsub in arrSubCategory)
{
[dicSubCategory setObject:[dicsub objectForKey:@"category_id"] forKey:@"category"];
[dicSubCategory setObject:[dicsub objectForKey:@"parent_id"] forKey:@"parent"];
[dicSubCategory setObject:[dicsub objectForKey:@"image"] forKey:@"image"];
[dicSubCategory setObject:[dicsub objectForKey:@"name"] forKey:@"name"];
NSLog(@"sub category parsing%@",dicSubCategory);
[file addSubCategories:dicSubCategory];
}
这里我检查数组计数是否大于零,然后条件必须检查。
- >但会发生什么意味着
(
()
)
一个空数组已经存储在我的数组中,如何从我的json值中避免这个空。
答案 0 :(得分:0)
您可以检查arr中的对象是NSDictionary
还是
for (NSDictionary *dicsub in arrSubCategory)
{
if([dicsub isKindOfClass:[NSDictionary class]])
{
[dicSubCategory setObject:[dicsub objectForKey:@"category_id"] forKey:@"category"];
[dicSubCategory setObject:[dicsub objectForKey:@"parent_id"] forKey:@"parent"];
[dicSubCategory setObject:[dicsub objectForKey:@"image"] forKey:@"image"];
[dicSubCategory setObject:[dicsub objectForKey:@"name"] forKey:@"name"];
NSLog(@"sub category parsing%@",dicSubCategory);
[file addSubCategories:dicSubCategory];
}
}
答案 1 :(得分:0)
您正在检查对象是否为零,您应该检查其计数是否为零。
尝试这种方式:
NSArray *arr = [DicWholeCategories objectForKey:@"subcategory"];
if(arr.count > 0)
{
[arrSubCategory addObject:arr];
}
答案 2 :(得分:0)
有很多错误:
首先,你的情况是错误的。它应该是
if(arrSubCategory.count > 0 && !arrSubCategory)
您需要&&
运算符而不是||
,因为两个条件都应该为true表示数组计数应该大于0且不应该nil
继续。
对象与Nil
的比较也是错误的,它应该是nil
。
第二件事是不要将nil
与(object != nil)
之类的任何对象进行比较,以便更好地使用(!object)
。
最后一件事,如果你想检查对象是null
或不使用isKindOfClass:
方法,它会返回BOOL
值。
if (![arrSubCategory isKindOfClass:[NSNull class]])
为了避免空数组,只需一行即可:
if ([arrSubCategory count] > 0)