是否可以根据关键属性名从CALayer的NSArray使用KVC获取NSDictionary?我尝试使用-dictionaryWithValuesForKeys:,但它返回一个NSArray。 有什么想法吗?
NSArray *tempArray = [self.layer.sublayers copy];
NSArray *ListName = [self.layer.sublayers valueForKey:@"name"];
NSDictionary *tmpD= [tempArray dictionaryWithValuesForKeys:ListName];
由于
答案 0 :(得分:5)
这就是你要问的问题吗?
NSDictionary * layersByName = [NSDictionary dictionaryWithObjects:[self.layer.sublayers copy]
forKeys:[self.layer.sublayers valueForKey:@"name"]];
-[NSArray valueForKey:]
返回一个数组,该数组是通过使用相同的参数向接收者询问其自己的valueForKey:
中的每个对象而形成的。
答案 1 :(得分:0)
我不知道如何直接与KVC一起做这件事。不过,通过迭代数组来做起来非常简单:
NSMutableDictionary *layersByName = [NSMutableDictionary dictionary];
for (CALayer *layer in self.layer.sublayers)
{
[layersByName setObject:layer forKey:layer.name];
}