【发布时间】:2014-03-01 02:46:57
【问题描述】:
上下文:我在一个自定义类中有几个 CGPathRef,从 NSObject 派生,命名为 model。我正在寻找一种方法来返回特定的 CGPathRef,基于我在运行时生成的字符串。
简化示例,如果我可以使用 KVC:
#model.h
@property (nonatomic) CGMutablePathRef pathForwardTo1;
@property (nonatomic) CGMutablePathRef pathForwardTo2;
@property (nonatomic) CGMutablePathRef pathForwardTo3;
...
#someVC.m
-(void)animateFromOrigin:(int)origin toDestination:(int)destination{
int difference = abs(origin - destination);
for (int x =1; x<difference; x++) {
NSString *pathName = [NSString stringWithFormat:@"pathForwardTo%d", x];
id cgPathRefFromString = [self.model valueForKey:pathName];
CGPathAddPath(animationPath, NULL, cgPathRefFromString);
}
}
问题:我怎样才能访问不符合 KVC 的属性 (CGPathRef),只将其名称表示为字符串?
【问题讨论】:
-
您将它们称为“属性”。他们有访问器方法吗?
-
是的,希望我的编辑澄清了一点。谢谢
-
当然您可以使用
performSelector类型操作来调用getter 方法,但目前尚不清楚如何获取该结果类型。您可能必须使用methodForSelector然后调用“原始”方法实现,这是我从未尝试过的。 -
为什么它们不符合 KVC?声明的
@properties默认符合 KVC。 -
@AndrewMadsen - 返回值不是对象或标量。
标签: objective-c cgpath kvc