Ale*_*lex 33 iphone cocoa objective-c
使用 - 声明的方法与使用+声明的方法之间有什么区别
例如
- (void)methodname
+ (void)methodname
Run Code Online (Sandbox Code Playgroud)
Jas*_*ien 51
前缀的方法-是实例方法.这意味着它们只能在类的实例上调用,例如:
[myStringInstance length];
Run Code Online (Sandbox Code Playgroud)
前缀的方法+是类方法.这意味着它们可以在类上调用,而不需要实例,例如:
[NSString stringWithString:@"Hello World"];
Run Code Online (Sandbox Code Playgroud)
+(void)methodname是类变量,-(void)methodname是对象变量。
假设您创建了一个实用程序类,该类具有反转字符串的方法。您称为 MYUtility 的类。
如果你使用+,就像
+ (NSString *)reverse:(NSString *)stringToReverse
Run Code Online (Sandbox Code Playgroud)
你可以直接使用它
NSString *reversed = [MYUtility stringToReverse:@"I Love objective C"];
Run Code Online (Sandbox Code Playgroud)
如果您使用 -,例如
- (NSString *)reverse:(NSString *)stringToReverse
Run Code Online (Sandbox Code Playgroud)
你必须使用:
MYUtility *myUtil = [[MYUtility alloc] init];
NSString *reversed = [myUtil stringToReverse:@"There are many ways to do the same thing"];
Run Code Online (Sandbox Code Playgroud)
使用基于类的函数,您只需直接调用,但除了 #defines 之外,您无权访问任何局部变量,因为该类未实例化。
但是使用 - (NSString,您必须在使用前实例化该类,并且您可以访问所有局部变量。
这不是选择一件事并坚持下去,许多类都有,只要看看 NSString 的头文件,它就散落着 + 函数和 - 函数。
| 归档时间: |
|
| 查看次数: |
9610 次 |
| 最近记录: |