Как реализовать initWithObjects? - PullRequest
2 голосов
/ 30 января 2010

Как я могу создать класс с инициализатором initWithObjects?

Или просто имеет больше смысла наследовать от NSArray и обходить его таким образом?

Ответы [ 2 ]

4 голосов
/ 30 января 2010

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];
}

Подробнее см. на этой странице .

0 голосов
/ 30 января 2010
@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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...