如何令自己所写的对象具有拷贝功能

2018-04-28  本文已影响0人  温水煮青蛙a
.h
#import <Foundation/Foundation.h>

@interface Person : NSObject<NSCopying>

@property (nonatomic, assign) NSInteger age;

@property (nonatomic, copy) NSString *name;

@end
.m
#import "Person.h"

@implementation Person

- (id)copyWithZone:(NSZone *)zone {
    
    Person *person = [[[self class] allocWithZone:zone] init];
    person.age = self.age;
    person.name = self.name;
    
    return person;
}

@end
调用
Person *person = [[Person alloc] init];
    person.age = 10;
    person.name = @"name";
    
    Person *person1 = [person copy];
    person1.age = 11;
    person1.name = @"name1";
    NSLog(@"person.age==%ld", person.age);//person.age==10
    NSLog(@"person.name==%@", person.name);//person.name==name
    NSLog(@"person1.age==%ld", person1.age);//person1.age==11
    NSLog(@"person1.name==%@", person1.name);//person1.name==name1
    
上一篇 下一篇

猜你喜欢

热点阅读