我正在开发一个iPhone应用程序,使用具有多对多关系的核心数据,并且在我的一个类中有一个NSSet属性。我正在创建一个NSSet,分配给此属性,然后释放该对象,问题是我得到一个EXC_BAD_ACCESS。NSManagedObject中的过度释放NSSet
NSSet *feedSet = [[NSSet alloc] initWithSet:mutableFeedSet];
Signature *signature = (Signature *) [NSEntityDescription insertNewObjectForEntityForName:@"Signature" inManagedObjectContext:context];
signature.site = [feed objectForKey:@"site"];
signature.url = [feed objectForKey:@"url"];
signature.feedList = feedSet;
NSLog(@"%d", [feedSet retainCount]);
[context save:&error];
[feedArray release];
[mutableFeedSet release];
[formatter release];
[feedSet release];
当我打印的feedSet保留计数我意识到signature.feedList = feedSet;
没有保留的对象,所以我删除了[feedSet release];
和我得到解决的问题......问题是。为什么当将feedSet分配给feedList属性时,它没有保留该对象?
谢谢!
但这就是为什么我很困惑,因为我在我的财产声明中使用保留。 Signature.h @property(nonatomic,retain)NSSet * feedList; Signature.m @dynamic feedList; – 2011-02-01 00:42:13