initialize 的用处
来源:互联网 发布:mac创建电脑账户的提示 编辑:程序博客网 时间:2024/05/17 20:29
+(void) initialize 的用处
例如 你有一个类 这个类中的多有方法都是类方法即:
#import <Foundation/Foundation.h>
@interface Car : NSObject
+ (void)run;
+(void)jump;
@end
#import "Car.h"
@implementation Car
static NSMutableArray * g_mArr = nil;
+(void)initialize{
g_mArr = [NSMutableArray array];
}
+ (void)run{
[g_mArr addObject:@"run”];
NSLog(@"%@",g_mArr);
}
+(void)jump{
[g_mArr addObject:@"jump"];
}
@end
2015-11-20 15:12:07.149 dfasdf[1390:192525] (
run,
jump
)
在这里我们没有调用这个initialize方法,但是为什么initialize自己就调用了呢?因为initialize 是在 init 调用之前调用的 只要你用到了这个类他就会自动调用这个方法 而且只是调用以次
百度到的结果如下:
调用
NSLog(@"Hello, World!");
Duck* duck1 = [[Duck alloc] init];
Duck* duck2 = [[Duck alloc] init];
Duck* duck3 = [[Duck alloc] init];
Chicken* chicken = [[Chicken alloc] init];
#import "Duck.h";
@implementation Duck
+(void) initialize {
NSLog(@"Duck initialize class:%@",[self class]);
}
-(void) init {
NSLog(@"Duck init");
}
#import <cocoa/Cocoa.h>
#import "Duck.h"
@interface Chicken : Duck {
}
/**
* 2008-03-23 20:21:08.816 initialize_example[30513:10b] Hello, World!
2008-03-23 20:21:08.818 initialize_example[30513:10b] Duck initialize class:Duck
2008-03-23 20:21:08.819 initialize_example[30513:10b] Duck init
2008-03-23 20:21:08.820 initialize_example[30513:10b] Duck init
2008-03-23 20:21:08.820 initialize_example[30513:10b] Duck init
2008-03-23 20:21:08.820 initialize_example[30513:10b] Duck initialize class:Chicken
2008-03-23 20:21:08.821 initialize_example[30513:10b] Duck init
*/
运行时间的行为之一就是initialize。虽然看起来有点像大家常见的init,但是他们并不相同。
在程序运行过程中,它会在你程序中每个类调用一次initialize。这个调用的时间发生在你的类接收到消息之前,但是在它的超类接收到initialize之后。
@end
- initialize 的用处
- +(void)load; +(void)initialize;有什么用处?
- +(void)load; +(void)initialize;有什么用处?
- ContentContainer的用处。
- route 命令的用处
- 醋的巨大用处
- eval的用处
- UNREFERENCED_PARAMETER的用处
- flex的ResourceBundle用处
- struts FormBean的用处
- base64编码的用处~
- UNREFERENCED_PARAMETER的用处
- return的用处
- 视图的用处
- C++的用处
- 在线代理的用处
- $_SERVER的用处
- javascript 的用处
- android:拷贝sqlite数据库到本地sd卡
- 5+plus教程-1
- eclipse切换至分支报错:Authorization failed
- 用C语言写一个订座系统
- shell sort
- initialize 的用处
- Spring、Struts2+Spring+Hibernate整合步骤
- sql 的join on 和 where 区别
- Android 5.0 双卡信息管理分析
- (转)浅谈onInterceptTouchEvent、onTouchEvent与onTouch
- 最小生成树——Prim(普利姆)算法
- Android 手动显示和隐藏软键盘 android 隐藏显示输入法键盘
- PDO事物处理
- java synchronized详解