使用 - 声明的方法和使用 + 声明的方法有什么区别?
例如:
- (void)methodname
+ (void)methodname
使用 - 声明的方法和使用 + 声明的方法有什么区别?
例如:
- (void)methodname
+ (void)methodname
-
前缀的方法是实例方法。这意味着它们只能在类的实例上调用,例如:
[myStringInstance length];
+
前缀的方法是类方法。这意味着它们可以在类上调用,而不需要实例化,例如:
方法以-
前缀开头是实例方法,必须通过类的实例来调用。
[NSString stringWithString:@"Hello World"];
+(void)methodname
是类变量,-(void)methodname
是对象变量。
假设你创建了一个实用类,其中有一个反转字符串的方法。你称之为MYUtility。
如果使用+,例如:
+ (NSString *)reverse:(NSString *)stringToReverse
NSString *reversed = [MYUtility stringToReverse:@"I Love objective C"];
- (NSString *)reverse:(NSString *)stringToReverse
MYUtility *myUtil = [[MYUtility alloc] init];
NSString *reversed = [myUtil stringToReverse:@"There are many ways to do the same thing"];
minus 是实例方法(只能通过实例化的对象访问)
plus 是类方法(就像Java中的Math.abs(),可以在没有实例化对象的情况下使用)