4
我瞭解關鍵詞「va_list」「va_start」「va_arg」「va_end」的用法。 和我吃晚飯類有一個init方法是這樣的:Obj-c如何繼承一個方法有參數數組?
超級類:
- (id) initWithChildren:(NSObject*)firstChild, ... NS_REQUIRES_NIL_TERMINATION{
if(self = [super init]){
va_list children;
va_start(children, firstChild);
self.children = [[NSMutableArray alloc] initWithObjects:firstChild, nil];
firstChild.father = self;
NSObject* child;
while ((child = va_arg(children, NSObject*)) != nil){
[_children addObject:child];
}
va_end(children);
}
return self;
}
它的工作原理well.But我有麻煩要繼承它。
子類
- (id) initWithName:(NSString*)name children:(NSObject*)firstChild, ... NS_REQUIRES_NIL_TERMINATION{
self = [super initWithChildren:"what should I write here?"];
if (self){
self.name = name;
//other subclass work
}
return self;
}
任何想法?謝謝。
這是所有討論的副本。 :) – rmaddy
@rmaddy我只是在發佈答案後纔看到了這個愚人節。不幸的是,當您輸入答案時,SO不會顯示傳入的錯誤。 – dasblinkenlight