Objective-C中,当self作为当前类时需要注意的细节
2015-04-16 19:41
211 查看
在Objective-C中,self既可以作为当前类使用,也可以作为当前类对象使用。当self作为当前类时,需要注意一个细节,如:
显然Hello方法是个静态方法,编译运行,发现程序出现了崩溃,为什么会错呢?原因如下:
当self作为当前类时,有一个前提,就是一定要在静态方法中使用self,刚才的application:didFinishLaunchingWithOptions:方法是一个动态方法,而在动态方法中是不能将self用作当前类使用的,只能将self用作当前类对象,而类对象是无法调用Hello这个静态方法的,所以,程序报错。相信聪明的你已经知道如何使用了,正确的做法举例如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self Hello]; return YES; } +(void)Hello{ NSLog(@"World"); }
显然Hello方法是个静态方法,编译运行,发现程序出现了崩溃,为什么会错呢?原因如下:
当self作为当前类时,有一个前提,就是一定要在静态方法中使用self,刚才的application:didFinishLaunchingWithOptions:方法是一个动态方法,而在动态方法中是不能将self用作当前类使用的,只能将self用作当前类对象,而类对象是无法调用Hello这个静态方法的,所以,程序报错。相信聪明的你已经知道如何使用了,正确的做法举例如下:
相关文章推荐
- 作为Linux小白,一些需要注意的小细节
- C++转向Objective-C需要注意的地方(基础)。
- 细节决定成败,注意的事情需要做到,而不是听完了当耳边风
- 应聘过程中需要注意的细节及如何规划职业发展生
- JS需要注意的细节和一些基础知识
- C++在使用Qt中SLOT宏需要注意的一个小细节
- jQuery中需要注意的细节问题小结 详细出处参考:http://www.jb51.net/article/29076.htm
- webpack编译react需要注意的细节
- nginx一些需要注意的细节
- Qt 多线程与数据库操作需要注意的几点问题(QSqlDatabase对象只能在当前线程里使用)
- 新手SqlServer数据库dba需要注意的一些小细节
- 数组名作为变量使用时需要注意的陷阱
- 接口 需要注意的细节
- java编写代码需要注意的小细节
- jdk环境配置需要注意的一些细节
- Java transient关键字使用小结及一些需要注意的细节
- 使用OpenCV需要注意的小细节
- Coolite--使用汉字作为字段名时需要注意的问题
- jQuery中需要注意的细节问题
- SEO网站优化需要注意哪些细节问题