次のカテゴリを見てください...私の知る限り、インスタンス変数をカテゴリに追加することはできません..
.h
//
// Created by macbook on 17.01.13.
//
// To change the template use AppCode | Preferences | File Templates.
//
#import <Foundation/Foundation.h>
@interface NSMutableArray (Cache)
@property (nonatomic, strong) NSArray *backup;
- (void)restoreBackup;
@end
.m
//
// Created by macbook on 17.01.13.
//
// To change the template use AppCode | Preferences | File Templates.
//
#import "NSMutableArray+Cache.h"
#import <objc/runtime.h>
#define CEBackupKey @"Backup"
@implementation NSMutableArray (Cache)
#pragma mark - Properties
- (NSArray *)backup {
return objc_getAssociatedObject(self, CEBackupKey);
}
- (void)setBackup:(NSArray *)backup {
objc_setAssociatedObject(self, CEBackupKey, backup, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
#pragma mark - Methods
- (void)restoreBackup {
[self removeAllObjects];
[self addObjectsFromArray:self.backup];
}
@end
ここで何が起こっているのか、誰でも詳しく説明できますか..
バックアップを保存するこの方法は、この配列の個別のディープ コピーを作成するよりもメモリの消費量が少なくて済みますか?