例如,我有对象部门和财产员工。我想要方法
- (NSString *)propertyName;
这样
NSLog(@"%@", [department.employees propertyName]);
将打印“员工”。
有可能吗?
修改 我有一个CoreData托管对象部门,其关系称为employees。 所以在课堂上我有:
@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 :(得分:0)
不,您必须手动初始化propertyName
,除非您乐意使用预定义的宏__FILE__
,其中包含.m
文件后缀。
答案 1 :(得分:0)
首先,我不知道如何通过回答您的实际问题来实现您的目标。但是,Core Data已经为您提供了所需内容 - 请参阅here。
顺便说一下,你不应该改变NSSet。这是NSMutableSet的工作。