嗨,我是iphone的新手并开始学习Obj c。
我注意到函数定义,对于我们正在使用的某个函数( - )以及我们正在使用的某些函数(+)
实施例: +(id)requestWithURL:(NSURL *)theURL
- initWithURL:
这两个运算符/符号的用法有什么区别?
谢谢!
答案 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)
+
=静态方法(即你不需要类的实例来调用方法 - 但你不能使用非静态成员变量或类似的东西)
-
=实例方法