category = (
{
"category_id" = 18;
column = 1;
description = "Electrician Works";
image = "images/Electrician.jpg";
"meta_description" = "Electrician Works";
"meta_keyword" = "Electrician Works";
name = Electrician;
"parent_id" = "";
"sort_order" = 3;
status = enable;
subcategory = (
);
top = "";
},
{
"category_id" = 19;
column = 1;
description = "Plumbing Works";
image = "images/Plumber.png";
"meta_description" = "Plumbing Works";
"meta_keyword" = "Plumbing Works";
name = Plumber;
"parent_id" = "";
"sort_order" = 1;
status = disable;
subcategory = (
);
top = "";
},
{
"category_id" = 37;
column = 0;
description = "";
image = "images/SUV.jpg";
"meta_description" = "";
"meta_keyword" = "";
name = SUV;
"parent_id" = 20;
"sort_order" = 3;
status = enable;
subcategory = (
);
top = "";
}
如果parent_id =""然后其他值必须删除。
我存储了值名称& parent_id在这里
{
name = Microwave;
parent = "";
},
{
name = Hatchback;
parent = 20;
},
{
name = Sedan;
parent = 20;
},
{
name = SUV;
parent = 20;
}
如果父ID不存在,那么我必须从数组中删除,朋友任何人帮我找出这个问题。
-(void)responseFunction:(NSMutableDictionary*)response
{
BOOL sucess;
sucess =[response objectForKey:@"sucess"];
if(!sucess)
{
NSLog(@"%@",response);
arrDicCategory=[response objectForKey:@"category"];
for(NSDictionary *dicAllCategory in arrDicCategory)
{
NSMutableDictionary *dicStorage=[[NSMutableDictionary alloc]init];
[dicStorage setObject:[[dicAllCategory objectForKey:@"name"] length] !=0?[dicAllCategory objectForKey:@"name"]:@"" forKey:@"name"];
// [dicStorage setObject:[dicAllCategory objectForKey:@"parent_id"]!=Nil?[dicAllCategory objectForKey:@"parent"]:@"" forKey:@"parentid"];
[dicStorage setObject:[dicAllCategory objectForKey:@"parent_id"] forKey:@"parent"];
[arrDicName addObject:dicStorage];
NSLog(@"%@",arrDicName);
}
}
}
这是我的代码......
I NEED OUTPUT LIKE THIS
name = Hatchback;
parent = 20;
name = Sedan;
parent = 20;
name = SUV;
parent = 20;
我正在尝试使用以下代码删除值:
for(int i=0; i<arrDicName.count ; i++)
{
if([[arrDicName objectAtIndex:i]objectForKey:@"parent"]==Nil)
{
[arrDicName removeObject:[[arrDicName objectAtIndex:i]objectForKey:@"parent"]];
NSLog(@"AfterRemovingFromThearray%@",arrDicName);
}
}
我理解的代码有些不对劲,但我无法找到它,所以最后我来到这里帮助我的朋友。
答案 0 :(得分:1)
尝试以下代码。我已根据您的要求创建了一个虚拟字典和数组。
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"" forKey:@"parent_id"];
[dict setObject:@"abc" forKey:@"name"];
NSMutableDictionary *dict1 = [[NSMutableDictionary alloc] init];
[dict1 setObject:@"1" forKey:@"parent_id"];
[dict1 setObject:@"abcq" forKey:@"name"];
NSMutableDictionary *dict2 = [[NSMutableDictionary alloc] init];
[dict2 setObject:@"" forKey:@"parent_id"];
[dict2 setObject:@"sss" forKey:@"name"];
NSMutableDictionary *dict3 = [[NSMutableDictionary alloc] init];
[dict3 setObject:@"2" forKey:@"parent_id"];
[dict3 setObject:@"ddd" forKey:@"name"];
arrTemp = [[NSMutableArray alloc] init];
[arrTemp addObject:dict];[arrTemp addObject:dict1];[arrTemp addObject:dict2];[arrTemp addObject:dict3];
NSMutableIndexSet *indexesToDelete = [NSMutableIndexSet indexSet];
NSUInteger currentIndex = 0;
for (id obj in arrTemp) {
if([[obj objectForKey:@"parent_id"] isEqualToString:@""]){
[indexesToDelete addIndex:currentIndex];
}
currentIndex++;
}
[arrTemp removeObjectsAtIndexes:indexesToDelete];
NSLog(@"%@", arrTemp);
希望有所帮助。如果它没有解决您的问题,请告诉我。
答案 1 :(得分:1)
您的代码片段有几个问题:
"parent"
测试Nil
密钥。密钥永远不会是nil
,因为Objective-C集合类中不允许它们。而是测试length > 0
。最好的方法是创建一个新数组并复制通过测试的元素:
NSMutableArray filteredArray = [NSMutableArray new];
for (NSDictionary *dict in arrDicName)
{
NSString *parent = dict[@"parent"];
if (parent.length > 0)
[filteredArray addObject:dict];
}
arrDicName = filteredArray;
答案 2 :(得分:0)
- (BOOL)isEmptyString:(NSString *)yourParentID
{
BOOL isEmp = NO;
if([[yourParentID stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0)
{
isEmp = YES;
}
else
{
isEmp = NO;
}
return isEmp;
}
按照下面的代码
NSString *parentId = [NSString stringWithFormat:@"%@",[[arrDicName objectAtIndex:i]objectForKey:@"parent"]];
if([self isEmptyString:parentId])
{
// Parent id is nil
// Do the rest
}
else
{
// Parent id is not nil
}
希望这会对你有所帮助