🔥🔥如何令自己所写的对象具有拷贝功能?
Posted 1-434
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了🔥🔥如何令自己所写的对象具有拷贝功能?相关的知识,希望对你有一定的参考价值。
实现NSCoping协议。如果自定义的对象分为可变版本与不可变版本,那么就要同时实现 NSCopying与 NSMutableCopying协议。
@protocol NSCopying
- (id)copyWithZone:(nullable NSZone *)zone;
@end
@protocol NSMutableCopying
- (id)mutableCopyWithZone:(nullable NSZone *)zone;
@end
、、、、、、、、、、
、、、、、、、、、、
.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
以上是关于🔥🔥如何令自己所写的对象具有拷贝功能?的主要内容,如果未能解决你的问题,请参考以下文章
🔥isKindOfClass 和 isMemberOfClass