簡體   English   中英

“自我”是否必要?

[英]Is “self” necessary?

是否在Objective-C中使用“自我”或者只是一個好習慣? 我一直沒有使用它而根本沒有使用它,我似乎沒有注意到任何差異。 反正不是暗示嗎?

self ,如果你想為一個對象發送消息,很好,這是必要的self 通過getter / setter訪問屬性有時也是有益的,在這種情況下,您還需要使用self ,如self.propertynameself.propertyname = value (這些不等同於propertynamepropertyname = 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.

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