これは単純な問題だと思いますが、どういうわけかコアデータにオブジェクトがリークしています。コアデータには単純な1対1の関係があります。
Person <--------> Address
-name -city
-email -country
人物モデルは比較的単純で、属性はほとんどありませんでした。しかし、Personクラス自体から都市と国にアクセスするために、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
これらのゲッターを使用すると、Personモデルの単純なゲッターだけで街にアクセスできます。
person.city and person.country
しかし、これは正しい方法ではないと思います。この機能を実装して、メモリがリークされないようにするにはどうすればよいですか。