2011-11-16 43 views
0

例如我有对象部门和财产雇员。我想有方法从方法内部获取消息reciver的字符串名称

- (NSString *)propertyName; 

这样

NSLog(@"%@", [department.employees propertyName]); 

将打印 “员工”。

可能吗?

编辑: 我有一个CoreData托管对象部门有关系称为员工。 于是在课上我有:

@property (nonatomic, retain) NSSet *employees; 

我想用上述方法对NSSet中创建类别。我们的目标是实现象是这样

[department.employees addObject:newEmployee]; 

我醒来了这个想法,我认为OBJ-c是强大到足以做到这一点!

编辑2:

- (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]; 
} 

哇!看起来它真的不是那么简单)

回答

0

不,你必须手动初始化propertyName,除非你是乐于使用预先定义的宏__FILE__,其中将包括.m文件后缀。

+0

查看我的编辑 –

0

首先,我不明白你的目标将如何回答你的实际问题。但是,核心数据已经给你你想要的 - 见here

顺便说一句,你不应该改变NSSet。这是NSMutableSet的工作。

+0

是啊我知道你写的所有内容,看看我的新编辑 –

+0

我的答案*是*你的新编辑。尝试澄清更多。 –

+0

对不起!再看看 –