簡體   English   中英

obj c函數中(+)和(-)運算符有什么區別

[英]What is the difference between (+) and (-) operator in obj c function

嗨,我是iphone新手,開始學習Obj c。

我注意到函數定義,對於某些功能,我們正在使用(-),對於某些功能,我們正在使用(+)

示例:+(id)requestWithURL:(NSURL *)theURL

– initWithURL:

這兩個運算符/符號的用法有什么區別?

謝謝!

在類定義的上下文中, +/-確定方法是實例方法還是類級別方法。

+表示方法是類級別的,您不需要實例來調用它。

-表示該方法是實例方法,必須通過對象的實例調用。

靜態(+)方法的常見示例是NSString::stringWithFormat ,當您調用它時,它沒有實例,而是使用類名:

[NSString stringWithFormat: @"Your age is %d", age];

必須在適當對象的實例上調用實例方法,其中一個示例是:

NSString *s = @"oop:ack:zonks::ponies";
int len = [s length]; // instance method called

這些符號不應與數學運算符+-混淆,后者只能用作二進制或一元算術表達式的一部分。

+ =靜態方法(即,您不需要類的實例來調用該方法-但您不能使用非靜態成員變量或類似的方法)

- =實例方法

暫無
暫無

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

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