我认为这是一个简单的问题,但我以某种方式泄露了核心数据中的对象。我在核心数据中有一个简单的一对一关系。
Person <--------> Address
-name -city
-email -country
人物模型相对简单,只有几个属性。但是,我想在 Person 类中添加 getter 以从 person 类本身访问城市和国家。所以,我做了类似的事情,
@interface Person:NSManagedObject
@property(nonatomic, strong) NSString *name;
@property(nonatomic, strong) NSString *email;
@property(nonatomic, strong) Address *address;
-(NSString*)city;
-(NSString*)country;
@end
@implementation Person
-(NSString*)city{
[self willAccessValueForKey:@"address"];
NSString *c = [self valueForKeyPath:@"address.city"];
[self didAccessValueForKey:@"address"];
}
-(NSString*)country{
[self willAccessValueForKey:@"address"];
NSString *c = [self valueForKeyPath:@"address.country"];
[self didAccessValueForKey:@"address"];
}
@end
有了这些 getter,我就可以通过 Person 模型中的简单 getter 访问城市;
person.city and person.country
但是,我觉得这不是正确的做法。如何实现此功能以确保不泄漏内存。