我剛剛在一些工作了幾個月的代碼中注意到了這一點。雖然這讓我好奇的我敢肯定,我們一直生活在借來的時間...死亡後的物體壽命(保留計數= 0)
假設activeItem:
@property (nonatomic, retain) ItemView *activeItem;
而且我們有這個條件在touchesEnded:
if (CGRectContainsPoint(dropRect, touchLocation)) {
ItemView *replacementItem = [[ItemView alloc] initWithFrame:frame];
[newItems replaceObjectAtIndex:[newItems indexOfObject:activeItem] withObject:replacementItem];
[self addSubview:replacementItem];
[controller.view.subView addItem:activeItem];
[replacementItem goCenter];
[replacementItem release];
}
唯一保留activeItem是NSArray,newItems
。我應該在撥打replaceObjectAtIndex
之前保留它,然後在我發佈replacementItem
時將其釋放?其他方式?
似乎工作正常,但不是EXC_BAD_ACCESS之前的時間問題?!?
想通了......你的帖子讓我思考。它仍然被視圖保留... – Meltemi 2010-01-22 04:09:11
另外,iPhone上沒有弱引用(還沒有)(因爲沒有GC ...) – 2010-01-22 04:22:25
Kendall Helmstetter Gelner:你可以有一個弱點(也就是非保留)沒有GC的參考。 '__weak' *關鍵字*僅適用於GC。 – 2010-01-22 05:14:58