对于Model copy协议的实现实例:
——————————————————————————————————————————————————————————————————————————————————————————
model模型.h
——————————————————————————————————————————————————————————————————————————————————————————
#import <Foundation/Foundation.h>
@interface KaoBei : NSObject
<
NSCopying,
NSMutableCopying
>
@property (nonatomic, copy) NSString *ids;
@property (nonatomic, copy) NSString *imageUrlStr;
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *chanPInName;
@property (nonatomic, copy) NSString *icon;
@property (nonatomic, copy) NSString *isParent;
@property (nonatomic,copy) NSString *theSelected;
@end
————————————————————————————————————————————————————————————————————————————————————————————
model模型.m
————————————————————————————————————————————————————————————————————————————————————————————
#import "KaoBei.h"
@implementation KaoBei
- (id)init {
self = [super init];
if (self) {
}
return self;
}
- (id)copyWithZone:(NSZone *)zone {
KaoBei *instance = [[KaoBei alloc] init];
if (instance) {
instance.chanPInName = self.chanPInName;
instance.icon = [self.icon copyWithZone:zone];
instance.isParent = [self.isParent copyWithZone:zone];
instance.theSelected = [self.theSelected copyWithZone:zone];
instance.ids = [self.ids copyWithZone:zone];
instance.name = [self.name copyWithZone:zone];
instance.imageUrlStr = [self.imageUrlStr copyWithZone:zone];
}
return instance;
}
- (id)mutableCopyWithZone:(NSZone *)zone {
KaoBei *instance = [[KaoBei alloc] init];
if (instance) {
instance.chanPInName = self.chanPInName;
instance.icon = [self.icon copyWithZone:zone];
instance.isParent = [self.isParent copyWithZone:zone];
instance.theSelected = [self.theSelected copyWithZone:zone];
instance.ids = [self.ids copyWithZone:zone];
instance.name = [self.name copyWithZone:zone];
instance.imageUrlStr = [self.imageUrlStr copyWithZone:zone];
}
return instance;
}
- (NSString *)description {
NSString *dis = [NSString stringWithFormat:@"chanPInName:%@ icon:%@ isParent:%@ theSelected:%@ ids:%@ name:%@ imageUrlStr:%@n",self.chanPInName,self.icon,self.isParent,self.theSelected,self.ids,self.name,self.imageUrlStr];
return dis;
}
@end
_________________________________________________________________________________________
ViewController 打印看看 就这样吧
——————————————————————————————————————————————————————————————————————————————————————————
#import "ViewController.h"
#import "KaoBei.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
KaoBei *kaobei = [[KaoBei alloc]init];
kaobei.name = @"123";
NSMutableArray *array = [NSMutableArray new];
NSMutableArray *copyArray = [NSMutableArray new];
[array addObject:kaobei];
[copyArray addObject:[((KaoBei *)array[0]) copy]];
KaoBei *kao = copyArray[0];
kao.name = @"321";
NSLog(@"%@",((KaoBei *)array[0]).name);
NSLog(@"%@",((KaoBei *)copyArray[0]).name);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end