1

是否可以根据键属性名称从 CALayer 的 NSArray 中使用 KVC 获取 NSDictionary?我尝试使用 -dictionaryWithValuesForKeys:,但它返回一个 NSArray。任何想法?

   NSArray *tempArray = [self.layer.sublayers copy];
   NSArray *ListName = [self.layer.sublayers valueForKey:@"name"];

   NSDictionary *tmpD= [tempArray dictionaryWithValuesForKeys:ListName];

谢谢

4

2 回答 2

5

这是你要问的吗?

NSDictionary * layersByName = [NSDictionary dictionaryWithObjects:[self.layer.sublayers copy]
                                                          forKeys:[self.layer.sublayers valueForKey:@"name"]];

-[NSArray valueForKey:]valueForKey:返回一个数组,该数组是通过使用相同的参数向接收器中的每个对象询问其自己的对象而形成的。

于 2013-08-14T20:11:21.790 回答
0

我不知道直接使用 KVC 的方法。不过,只需遍历数组就很简单了:

NSMutableDictionary *layersByName = [NSMutableDictionary dictionary];
for (CALayer *layer in self.layer.sublayers)
{
    [layersByName setObject:layer forKey:layer.name];
}
于 2013-08-14T19:19:37.010 回答