iOS Копирование пользовательского объекта

Я загружаю пользовательский объект, используя:

NSArray* array = [[NSBundle mainBundle] loadNibNamed:@"MyViewItem" owner:nil options:nil];
MyViewItem* myBaseItem = [array objectAtIndex:0];

Чтобы не выполнять действие loadNibNamed, как сто раз в нескольких циклах, которые мне нужно сделать, я планирую использовать этот объект в качестве "базового" объекта, который я буду заполнять различной информацией, но всегда на основе одного и того же дизайна (как в UICollectionView на самом деле).

Моим первым шагом было установить в моем цикле что-то вроде:

for (int i = 0; i < x; i++ ) {
    MyViewItem* newItem = [myBaseItem copy];
}

К сожалению, класс MyViewItem пытался получить доступ к "copyWithZone", который я не реализовал. На этом этапе я пытался наследовать NSObject на нем (я думаю, что все NSObject реализует метод "копирования"), но проблема остается с той же ошибкой. Поэтому я попытался унаследовать NSCopying и реализовать свой метод copyWithZone, который заключается в следующем (хотя и не работает):

@interface MyViewItem : UIView <NSCopying> 
    // some stuff

@end
@implementation MyViewItem
// some stuff
- (id)copyWithZone:(NSZone *)zone
{
    MyViewItem* copy = [[MyViewItem allocWithZone:zone] init];
    // What should i do here ?
    return copy;
}
@end

Что мне не хватает? Я прочитал много вопросов, связанных с копированием, но не смог решить мой:(Спасибо!

0 ответов

Другие вопросы по тегам