簡體   English   中英

從字典數組復制到字典數組

[英]Copy from array of dictionary to array of dictionary

我正在從像這樣的字典數組中收集ID

NSArray *places=   @[ 
    {place_id = @"3dsfdDfGDH";      
    place_url = @"/Peru/Lambayeque/Chiclayo";      
    place_name = @"Peru";}
     ,
    {place_id = @"HUHiKcZVU7ItMyQ";       
    place_url = @"/Peru/La+Libertad/Huanchaco";      
    place_name = @"Peru";}
    ,
    {place_id = @"7JL1K5FVUbg0vg";        
    place_url = @"/United+Kingdom/England/Buckley+Hill";      
    place_name = @"United Kingdom";}
                   ];

NSArray *placeIds= [places valueForKeyPath:place_id]; 

它工作正常,但是我想要的是另一個帶有place_id以及place_url而不是Name的數組。 就像是

我希望NSArray * PlaceIdAndURL具有如下字典

                   @[
         {place_id = @"3dsfdDfGDH";     
        place_url = @"/Peru/Lambayeque/Chiclayo";}
         ,
        {place_id = @"HUHiKcZVU7ItMyQ";       
        place_url = @"/Peru/La+Libertad/Huanchaco";}
        ,
        {place_id = @"7JL1K5FVUbg0vg";        
        place_url = @"/United+Kingdom/England/Buckley+Hill";}
                       ];

我如何在不循環整個數組的情況下像在上面使用ValueForKeyPath獲得的第一個數組那樣獲得ValueForKeyPath

我認為在一個不會重復的襯里中是不可能的....但是這是完成任務的代碼。 實際上,您可以將此邏輯放入方法中,並作為類別添加到NSArray和NSMutableArray ...

place_dup將包含您要查找的字典。

NSArray *places=   @[
                     @{@"place_id" : @"NFxmX.VVU7LtQwQ",
                       @"place_url" : @"/Peru/Lambayeque/Chiclayo",
                       @"place_name" : @"dadfasdf"}
                     ,
                     @{@"place_id" : @"HUHiKcZVU7ItMyQ",
                       @"place_url" : @"/Peru/La+Libertad/Huanchaco",
                       @"place_name" : @"dadfasdf"}
                     ,
                     @{@"place_id" : @"7JL1K5FVUbg0vg",
                       @"place_url" : @"/United+Kingdom/England/Buckley+Hill",
                       @"place_name" : @"dadfasdf"}
                     ];
NSMutableArray *places_dup = [@[] mutableCopy];
[places enumerateObjectsUsingBlock:^(id item, NSUInteger idx, BOOL *stop) {
    NSDictionary *dictionary = (NSDictionary *) item;
    NSMutableDictionary *filteredDictionary = [NSMutableDictionary dictionaryWithDictionary:dictionary];
    [filteredDictionary removeObjectForKey:@"place_name"];
    [places_dup addObject:filteredDictionary];
}];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM