我是iphone的新目标c。
我正在编写一个自定义类,那么,我应该编写自己的+ alloc,+ init方法吗? 我相信:+ alloc只会调用[thing alloc];并且+ init将执行类似:[thing setValue:X];
是否有“默认”+ alloc和+ init方法? 如果是的话,我应该等待默认的+ alloc和+ init ?,假设我有一个NSMutableDictionary * 即。
@interface class1 : NSObject {
NSString *test;
NSMutableDictionary *map;
}
感谢
答案 0 :(得分:5)
您通常不需要编写自己的+ alloc方法。
对于您的示例,您可能具有如下所示的-init:
- (id)init {
self = [super init];
if (self) {
map = [[NSMutableDictionary dictionary] retain];
}
return self;
}
请注意,在初始化自己的变量之前,首先调用超类-init
并检查它是否有效。
答案 1 :(得分:2)
你应 覆盖alloc
。
至于init
,这是一个实例方法,顺便说一下,是,这可能是您可能想要设置的地方你的变量。