Objective c 从方法内部获取消息接收器的字符串名称
例如,我有目标部门和财产员工。我想要一种方法Objective c 从方法内部获取消息接收器的字符串名称,objective-c,Objective C,例如,我有目标部门和财产员工。我想要一种方法 - (NSString *)propertyName; 以致 NSLog(@"%@", [department.employees propertyName]); 将打印员工 可能吗 编辑: 我有一个CoreData管理的对象部门,与名为employees的关系。 所以在课堂上我有: @property (nonatomic, retain) NSSet *employees; 我想使用上述方法在NSSet上创建类别。我们的目标是实现这样的东西
- (NSString *)propertyName;
以致
NSLog(@"%@", [department.employees propertyName]);
将打印员工
可能吗
编辑:
我有一个CoreData管理的对象部门,与名为employees的关系。
所以在课堂上我有:
@property (nonatomic, retain) NSSet *employees;
我想使用上述方法在NSSet上创建类别。我们的目标是实现这样的东西
[department.employees addObject:newEmployee];
我从这个想法中醒来,我认为obj-c足够强大,可以做到这一点
编辑2:
哇!看起来它真的不是那么简单。不,你必须手动初始化propertyName,除非你愿意使用预定义的宏文件,其中包括.m文件后缀。首先,我不知道如何通过回答你的实际问题来实现你的目标。然而,核心数据已经为您提供了您想要的-请参阅 顺便说一句,您不应该对NSSet进行变异。这是NSMutableSet的工作
- (void)addObject:(id)object{
id entityObject = #some magic here#;
NSString *setName = #some magic here#;
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&object count:1];
[entityObject willChangeValueForKey:setName withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[[entityObject primitiveValueForKey:setName] addObject:object];
[entityObject didChangeValueForKey:setName withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[changedObjects release];
}