obj c函数中(+)和( - )运算符之间的区别是什么

Ram*_*Ram 1 iphone objective-c

嗨,我是iphone的新手,开始学习Obj c.

我已经注意到函数定义,对于我们正在使用的某些函数( - )以及我们正在使用的某些函数(+)

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

- initWithURL:

这两个运算符/符号的用法有什么区别?

谢谢!

LBu*_*kin 10

在类定义的上下文中,+/-确定方法是实例级还是类级方法.

+ 表示该方法是类级别,并且您不需要实例来调用它.

- 表示该方法是实例方法,必须通过对象实例调用.

静态(+)方法的一个常见示例是NSString::stringWithFormat,当您调用它时,您没有实例,而是使用类名:

[NSString stringWithFormat: @"Your age is %d", age];
Run Code Online (Sandbox Code Playgroud)

必须在适当对象的实例上调用实例方法,其中一个例子是:

NSString *s = @"oop:ack:zonks::ponies";
int len = [s length]; // instance method called
Run Code Online (Sandbox Code Playgroud)

这些符号不应该混淆与所述数学运算符+-,这只能作为二进制或一元的算术表达式的一部分来施加.