[英]Is “self” necessary?
是否在Objective-C中使用“自我”或者只是一個好習慣? 我一直沒有使用它而根本沒有使用它,我似乎沒有注意到任何差異。 反正不是暗示嗎?
self
,如果你想為一個對象發送消息,很好,這是必要的self
。 通過getter / setter訪問屬性有時也是有益的,在這種情況下,您還需要使用self
,如self.propertyname
或self.propertyname = value
。 (這些不等同於propertyname
或propertyname = value
。
在引用實例變量時沒有必要。 當您想要將當前對象的引用傳遞給另一個方法時,例如設置委托時,這是必要的:
[someObj setDelegate:self];
在當前對象的同一個類中調用方法時也是必要的:
[self doMethod]
對於處理它所依賴的變量。 如果要使用合成的getter或setter,請使用帶有self的點表示法。
self.someProperty = @"blah"; //Uses the setter
someProperty = @"blah"; //Directly sets the variable
實際上每次都沒有必要,但這是一個很好的做法,因為它使其他人更容易閱讀你的代碼。
當你在不同的類中擁有相同名稱的對象時,它是必要的,那么“自我”關鍵字將告訴你的軟件你正在引用同一個類中的對象。
這通常發生在更大的項目中。
是的,因為Objective C沒有像C / C ++這樣的方法調用,而是使用消息發送,在類似的上下文中使用self
[self doSomething]; 和self.myProperty;
是必要的。
如果您正在訪問ivar,則不需要自我。
希望有所幫助。
-簡歷
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.