1

次を使用してカスタムオブジェクトをロードします。

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

数回のループで loadNibNamed アクションを 100 回も実行しないようにするために、このオブジェクトを「基本」オブジェクトとして使用し、さまざまな情報を入力しますが、常に同じ設計に基づいています (実際には 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

何が欠けていますか?コピーに関する多くの問題を読みましたが、私の問題を解決できませんでした:(ありがとう!

4

0 に答える 0