Как создать класс с инициализатором initWithObjects?Как реализовать initWithObjects?
Или это просто имеет смысл наследовать от NSArray и обойти его таким образом?
Как создать класс с инициализатором initWithObjects?Как реализовать initWithObjects?
Или это просто имеет смысл наследовать от NSArray и обойти его таким образом?
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 для получения дополнительной информации.
@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
Вам необходимо сохранить или скопировать массив. – Darren