當(dāng)對一個(gè)對象需要進(jìn)行copy操作的時(shí)候,自定義類需要實(shí)現(xiàn)copyWithZone方法,結(jié)果找到一個(gè)通用方法代碼如下:
id copyInstance = [[[self class] allocWithZone:zone] init];
size_t instanceSize = class_getInstanceSize([self class]);
memcpy((__bridge void *)(copyInstance), (__bridge const void *)(self), instanceSize);
return copyInstance;
這個(gè)方法有個(gè)坑,memcpy方法只會(huì)copy對象,而對對象的屬性并沒有進(jìn)行copy,所以當(dāng)再次對對象的屬性進(jìn)行操作時(shí)會(huì)崩潰。
測試結(jié)果如下:

image.png
還是老老實(shí)實(shí)對每個(gè)屬性進(jìn)行copy操作吧!?。。。。?br> 有知道通用方法的可以在評論區(qū)留言。