2015-10-07 146 views
1

我在数组一样,存储数据..如何从数组中删除对象,数组包含字典

while ([delegate_obj.Recordsetmaster next]) 
    { 
    NSMutableDictionary *local_DICT = [NSMutableDictionary new]; 

    NSString *str_id = [delegate_obj.Recordsetmaster stringForColumn:@"category_id"]; 
    [local_DICT setObject:str_id forKey:@"category_id"]; 

    NSString *str_name = [delegate_obj.Recordsetmaster stringForColumn:@"category_name"]; 
    [local_DICT setObject:str_name forKey:@"category_name"]; 

    NSString *str_status = [delegate_obj.Recordsetmaster stringForColumn:@"status"]; 
    [local_DICT setObject:str_status forKey:@"status"]; 

    NSString *str_image = [delegate_obj.Recordsetmaster stringForColumn:@"image"]; 
    [local_DICT setObject:str_image forKey:@"image"]; 

    [category_array addObject:local_DICT]; 
    } 

现在我想删除阵列5索引值如何做到这一点?

+1

从'category_array'? – Paulw11

+0

[category_array removeObjectAtIndex:3];它会崩溃。 –

+1

总是一个最佳实践 - 在删除特定索引上的项目之前,检查'category_array'的大小。而且,无论您迄今为止显示的任何代码如何,您都需要检查执行“while”循环的次数,因为这将控制您的数组大小。 – Abhinav

回答

1

我认为它只是[NSMutableArray removeObjectAtIndex:],但是我也想提供一个更直观的实现你的代码:

NSDictionary *keys = @{ @"category_id", @"category_name", @"status", @"image" }; 
while ([delegate_obj.Recordsetmaster next]) 
{ 
    NSMutableDictionary *local_DICT = [NSMutableDictionary new]; 
    for (NSString *key in keys) { 
     id value = [delegate_obj.Recordsetmaster stringForColumn:key]; 
     NSAssert(value, @"No value for '%@'", key); 
     [local_DICT setObject:id forKey:key]; 
    } 
    [category_array addObject:local_DICT]; 
}