當(dāng)對(duì)一個(gè)對(duì)象需要進(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對(duì)象,而對(duì)對(duì)象的屬性并沒(méi)有進(jìn)行copy,所以當(dāng)再次對(duì)對(duì)象的屬性進(jìn)行操作時(shí)會(huì)崩潰。
測(cè)試結(jié)果如下:

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