iOS 객체 복제 도구
일부 경우 우리는 어떤 모델에 대해 조작을 해야 할 수도 있고, 조작 후에 원본 데이터를 바꾸기를 원하지 않을 수도 있다.이럴 때 생각나는 거.
1, New 새 객체에 값을 지정합니다.
2. 협의를 실현한다.실제로는 하나하나 복제하고 있다.
만약 대상이 비교적 복잡하거나 조작 대상이 비교적 많다면.모두 비교적 시간이 걸리는 일이다.그래서 AutoCopy라는 자동 복제 클래스를 캡슐화했습니다.다운로드 주소:https://github.com/anjohnlv/AutoCopy
사용 방법: 1. NSObject+Copy를 다운로드합니다.h와 NSObject+Copy.m, 프로젝트를 가져옵니다.2. 이동이 필요한 곳에 헤드#import'NSObject+Copy.h'3을 도입하고 복제가 필요한 대상에 autoCopy 방법을 호출한다:
Person *clone = [person autoCopy];
이 가젯은 NSArray, NSDictionary 등의 대상을 지원하지 않으며, 이 대상들은mutableCopy를 직접 호출할 수 있습니다.원리: 실행할 때 클래스의 모든 속성 이름을 가져오고 kvc를 통해 오래된 모델에서 새 모델로 값을 가져옵니다.
-(NSArray *)allPropertyName {
unsigned int propertyCount = 0;
objc_property_t *properties = class_copyPropertyList([self class], &propertyCount);
NSMutableArray *allPropertyName = [NSMutableArray new];
for (unsigned int i = 0; i < propertyCount; ++i) {
objc_property_t property = properties[i];
NSString *propertyName = [NSString stringWithCString:property_getName(property) encoding:NSUTF8StringEncoding];
[allPropertyName addObject:propertyName];
}
free(properties);
return allPropertyName;
}
-(instancetype)autoCopy {
if (self) {
id copyObject = [[self class] new];
NSArray *allPropertyName = [self allPropertyName];
for (int i=0; i
만약 무슨 잘못이 있으면 도끼질을 환영합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.