Например, у меня есть объект отдел и свойство сотрудников . Я хочу иметь метод
- (NSString *)propertyName;
такой, что
NSLog(@"%@", [department.employees propertyName]);
выведет «сотрудники».
Возможно ли это?
EDIT:
У меня есть управляемый объект 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];
}
Вау! Похоже, это действительно не так просто)