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

时间:2010-06-03 13:41:40

标签: iphone objective-c

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

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

实施例: +(id)requestWithURL:(NSURL *)theURL

- initWithURL:

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

谢谢!

2 个答案:

答案 0 :(得分:10)

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

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

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

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

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

必须在适当对象的实例上调用实例方法,例如:

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

这些符号不应与数学运算符+-混淆,后者只能作为二元或一元算术表达式的一部分应用。

答案 1 :(得分:3)

+ =静态方法(即你不需要类的实例来调用方法 - 但你不能使用非静态成员变量或类似的东西)

- =实例方法