我正在開發一個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