我想以编程方式将代码与选择器相关联。我不清楚如何在 Objective C 中做到这一点。在 Ruby 中,我可能会覆盖method_missing
. 在 Common Lisp 中,我可能会定义一个宏。在Objective C中,我可以通过属性获得部分方式@dynamic
,但我不清楚如何实际实现它们。
这是一个具体的例子:我想使用一个NSMutableDictionary
来持久地存储我的对象的一部分。我的类有两种处理基本功能的方法,以及一堆动态属性(匹配@property
s 存在于 中@interface
):
@dynamic name;
@dynamic age;
@dynamic favoriteColor;
- (id)accessor:(NSString*)name {
return [[self dict] objectForKey:name];
}
- (void)mutator:(NSString*)name value:(id)value{
[[self dict] setObject:value forKey:name];
[[self dict] writeToFile:[self filename] atomically:YES];
}
现在我正在寻找一种方法来翻译像这样的电话
[myInstance setName:@"iter"];
进入
[self mutator:@"name" value@"iter"];
我想知道在 ObjC 中是否有一种惯用的方式来做到这一点。