3

xcode: でカスタム クラスを作成し、PaperPack2 つのインスタント変数を定義しました:titleおよびauthor-

次に、以下のようにクラスの 2 つのインスタンスを割り当てます。

PaperPack *pack1 = [[PaperPack alloc] init];
pack1.title = @"Title 1";
pack1.author = @"Author";

PaperPack *pack2 = [[PaperPack alloc] init];
pack1.title = @"Title 2";
pack1.author = @"Author";

次に、そのクラスで作成したインスタンスの数を数えて返すにはどうすればよいですか?

4

4 に答える 4

0
static PaperPack *_paperPack;

@interface PaperPack ()

@property (nonatomic, assign) NSInteger createdCount;

- (PaperPack *)sharedPaperPack;

@end

@implementation PaperPack

+ (PaperPack *)sharedPaperPack
{
    @synchronized(self)
    {       
        if(!_sharedPaperPack)
        {

             _sharedPaperPack = [[[self class] alloc] init];

        }
    }
    return _sharedPaperPack;
}

+ (PaperPack*)paperPack {
    self = [super init];
    if (self) {
        [PaperPack sharedPaperPack].createdCount ++;
    }
    return self;
}

使用するには:

「createdCount」値を増やすクラスメソッドを呼び出すだけです

PaperPack *firstPaperPack = [PaperPack paperPack];
PaperPack *secondPaperPack = [PaperPack paperPack];

そして数えます:

NSInteger count = [PaperPack sharedPaperPack].createdCount;

何かが間違っていたらごめんなさい、コードはメモリから書かれています

于 2013-07-25T07:22:05.157 に答える