當我用分析儀進行編譯時,我收到了一些消息。我有這些性能聲明:來自分析儀的「不正確的遞減」和「潛在泄漏」信息
@property (nonatomic, retain) SyncServicePrimary *syncAndCartOne;
@property (nonatomic, retain) SyncServiceSecondary *syncAndCartTwo;
這種方法是從applicationDidBecomeActive
叫和我「分配的對象的潛在泄漏」。
-(void)makeTheCartObjectsForCountry:(NSString*)country_key{
self.syncAndCartOne = [[SyncServicePrimary alloc] init];
self.syncAndCartTwo = [[SyncServiceSecondary alloc] init];
}
這被稱爲applicationWillResignActive
;在這裏我得到「對象的引用計數的錯誤遞減」。
-(void) removeTheCartObjects{
[self.syncAndCartOne release];
self.syncAndCartOne = Nil;
[self.syncAndCartTwo release];
self.syncAndCartTwo = Nil;
}
如果我設置的對象autorelease
,錯誤消失,但我想,當應用程序隱藏本身被釋放的對象。
這是我正在做的事情,但這是分裂太遠,分析儀看到開始和結束,或者這是我可以做得更好/正確的東西,所以它不會抱怨?
它很可能是我錯過了一個關於release
和alloc
週期(我來自PHP和C#)的簡單概念。
注意'Nil'是空字面類指針。對於對象指針,你應該使用'nil'來代替。 – 2011-10-26 04:46:39
很高興知道,謝謝。 –
只是在家裏駕駛它,如果我正在做一個類的實例的零檢查;使用「==無」與「==無」是不一樣的? –