[英]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.