0
我注意到大多數人來說,初始化CAShapeLayer
使用時:差之間[CAShapeLayer頁頭] INIT]和[CAShapeLayer層]
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
而不是使用初始化:
CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
我我想知道使用這兩種方法有什麼特別的區別,或者哪一種通常更好?
謝謝,我已經知道的內存管理的影響,但不明白爲什麼與CALayers人用[CALayer的層]代替分配一個新的對象。是否用於緩存目的? –
手動內存管理:由於第一種方法返回autorelease對象,它會自動釋放,我們通常在單獨的方法實現中執行此操作。這是因爲我們不需要在其上調用'release'。而如果你做了alloc + init,你需要釋放它,對吧?否則,您將在創建對象時泄漏內存並且未釋放內存。但是,使用ARC則無關緊要。 – 2012-11-10 15:32:27
@StackOverFlowRider。我認爲你誤解了[CALayer圖層]的作用。它確實分配/初始化一個新對象 - 唯一的區別是內存管理效果。 – rdelmar