所以我想要有多個連接的節點。每個節點都有傳出和傳入連接。但NSMutableArrays創建泄漏,雖然我使用ARC。我怎樣才能得到正確釋放的對象?我已經在使用autoreleasepool了。 ARC雙向關係
到目前爲止的代碼是:
@interface TestObj()
@property(strong) NSMutableArray *incoming;
@property(strong) NSMutableArray *outgoing;
@end
@implementation TestObj
@synthesize incoming,outgoing;
- (id)init
{
self = [super init];
if (self) {
incoming = [NSMutableArray array];
outgoing = [NSMutableArray array];
}
return self;
}
-(void)addIncoming:(TestObj *)incomingN {
if([incoming indexOfObject:incomingN] == NSNotFound) {
[incoming addObject:incomingN];
[incomingN addOutgoing:self];
}
}
-(void)addOutgoing:(TestObj *)outgoingN {
if([outgoing indexOfObject:outgoingN] == NSNotFound) {
[outgoing addObject:outgoingN];
[outgoingN addIncoming:self];
}
}
很好的答案。另外:由於您知道有關保留週期,因此您可以通過稍後移除強引用來解決問題(例如,通過從陣列中移除對象)。 –
我曾嘗試調用removeAllObjects,但它不起作用。 – thomasguenzel