- (void)copy:(NSObject *)object {
unsigned int property_count = 0;
objc_property_t * propertys = class_copyPropertyList([object class], &property_count);
for (int i = 0; i < property_count; i++) {
objc_property_t property = propertys[i];
const char * property_name = property_getName(property);
NSString * property_name_string = [NSString stringWithUTF8String:property_name];
[self setValue:[object valueForKey:property_name_string] forKey:property_name_string];
}
free(propertys);
}
使用runtime 深拷贝
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、为什么@property声明(NString,NSArray,NSDictionary)时需要使用copy,使...
- 需求:一个对象数组,然后想将这个数组拷贝出来一份用,修改拷贝的这份数组,保持原始数据不被改变. 我自己的理解: c...