2015-09-05 111 views
1
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值的空數組?

- >但會發生什麼意思

(
() 
) 

一個空數組已經獲得存儲在我的陣列,如何避免這個空從我的JSON值。

+0

這個檢查可以幫助,如果([arrSubCategory] ​​== [NSNull空]) –

+0

@Mumthezir它給了我一個警告..nsmutablearray爲null .... –

回答

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]; 
    } 
} 
0

要檢查,如果對象是零,您應檢查其計數爲零。

試試這個方法:

NSArray *arr = [DicWholeCategories objectForKey:@"subcategory"]; 

if(arr.count > 0) 
{ 
    [arrSubCategory addObject:arr]; 
} 
+0

[arrSubCategory addObject:[DicWholeCategories objectForKey:@「subcategory」]!= Nil?[DicWholeCategories objectForKey:@「subcategory」]:@「」]; –

+0

是的,我有檢查,但這不對我工作@Faisal Tanveer –

+0

你使用NSLog打印JSON響應?首先檢查JSON數據的格式。空數組可能在你的json中。 –

0

很多錯誤:所有的

首先你的條件是錯誤的。它應該是

if(arrSubCategory.count > 0 && !arrSubCategory) 

您將需要一個&&運營商在這裏,而不是||,因爲這兩個條件應該是真的意味着數組數應大於0,它不應該是nil繼續。

對象與Nil的比較也是錯誤的,它應該是nil

第二件事不比較任何對象與nil(object != nil)更好地使用只是(!object)

如果你想檢查對象的最後一件事是null或不使用isKindOfClass:方法返回一個BOOL值。

if (![arrSubCategory isKindOfClass:[NSNull class]]) 

很好地避免了空數組只有一行就夠了:

if ([arrSubCategory count] > 0)