簡體   English   中英

[[CAShapeLayer alloc] init]和[CAShapeLayer層]之間的區別

[英]Difference Between [[CAShapeLayer alloc] init] and [CAShapeLayer layer]

我注意到大多數人在初始化CAShapeLayer使用時:

CAShapeLayer *shapeLayer = [CAShapeLayer layer];

而不是使用初始化程序:

CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];

我想知道使用這兩種方式有什么特別的區別,或者哪種更好?

第一個返回一個自動釋放的對象。 由於它已經自動發布,因此您不是它的所有者。 當自動釋放池(駐留在其中的對象)被釋放時,該對象將自動為您釋放。

第二個對象返回保留計數為+1的對象。 您是該對象的所有者,因此有責任release該對象。 但是-使用ARC,您可能不需要像我們這樣調用release

相關鏈接:

  1. 目標C方法系列
  2. 基本內存管理規則

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM