时间:2010-01-30 02:45:00

标签: iphone objective-c

如何使用初始化程序initWithObjects创建一个类?

或者从NSArray继承并以这种方式解决它是否更有意义?

2 个答案:

答案 0 :(得分:4)

initWithObjects:使用C变量参数列表实现。这是一个示例实现:

- (void)setContentByAppendingStrings:(NSString *)firstArg, ...
{
    NSMutableString *newContentString = [NSMutableString string];
    va_list args;
    va_start(args, firstArg);
    for (NSString *arg = firstArg; arg != nil; arg = va_arg(args, NSString*))
    {
        [newContentString appendString:arg];
    }
    va_end(args);

    [contents autorelease];
    contents = [newContentString retain];
}

有关详细信息,请参阅this page

答案 1 :(得分:-3)

@interface foo : NSObject {

    NSArray* objects;
}

-(id)initWithObjects:(NSArray*)array;

@end


@implementation foo

-(id)initWithObjects:(NSArray*)array{
    if(self = [super init]){
        objects = array;        
    }
    return self;
}
@end