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];
}在这里,我检查数组计数是否大于零,然后条件必须检查。
->but发生了什么意味着什么
(
()
)一个空数组已经存储在我的数组中,如何从我的json值中避免这个空数组。
发布于 2015-09-05 15:01:04
您可以检查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];
}
}发布于 2015-09-05 15:08:17
你正在检查Object是否为nil,你应该检查它的计数是否为零。
尝试这样做:
NSArray *arr = [DicWholeCategories objectForKey:@"subcategory"];
if(arr.count > 0)
{
[arrSubCategory addObject:arr];
}发布于 2015-09-05 18:53:10
有很多错误:
首先,你的情况是错误的。它应该是
if(arrSubCategory.count > 0 && !arrSubCategory)这里需要一个&&运算符,而不是||,因为这两个条件都应该为真,这意味着数组计数应该大于0,而不应该为nil才能继续。
对象与Nil的比较也是错误的,它应该是nil。
第二,不要将任何像(object != nil)这样的对象与nil进行比较,最好只使用(!object)。
如果你想检查对象是不是null,最后一件事就是使用isKindOfClass:方法,它返回一个BOOL值。
if (![arrSubCategory isKindOfClass:[NSNull class]])为了避免空数组,只需要一行就足够了:
if ([arrSubCategory count] > 0)https://stackoverflow.com/questions/32410395
复制相似问题