🔥🔥如何令自己所写的对象具有拷贝功能?(代码片段)

1-434 1-434     2022-12-01     386

关键词:

实现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

 

🔥🔥造成循环引用和内存泄漏的几种情况

原文地址:http://www.cnblogs.com/wengzilin/p/4347974.htmlARC已经出来很久了,自动释放内存的确很方便,但是并非绝对安全绝对不会产生内存泄露。导致iOS对象无法按预期释放的一个无形杀手是——循环引用。循环引用可以简单理解... 查看详情

git入门图文教程(1.5w字40图)🔥🔥--深入浅出图文并茂

Git是当前最先进、最主流的分布式版本控制系统,免费、开源!核心能力就是版本控制。本文深入浅出、图文并茂的展示了Git的入门系列教程。01、认识一下Git!—简介Git是当前最先进、最主流的分布式版本控制系统,免费、开... 查看详情

🔥uiviewcontroller的生命周期(代码片段)

UIViewController的生命周期#pragmamark---lifecircle//非storyBoard(xib或非xib)都走这个方法-(instancetype)initWithNibName:(NSString*)nibNameOrNilbundle:(NSBundle*)nibBundleOrNilNSLog(@"%s",__FUNCTION__);if(self=[supe 查看详情

🔥界面卡顿的原因?

界面卡顿的原因,界面为什么会卡顿?界面成像原理: 不论是以前的CRT还是现在的液晶显示器,成像原理是一致的;  CPU部分:逻辑的计算;计算好将要显示的内容转交给GPU;GPU部分:GPU开始渲染后将结果换到帧缓冲区,随后视频... 查看详情

🔥谈谈事件的产生和传递和响应

谈谈事件的产生和传递和响应? ??事件的产生我们知道UIApplication、UIViewController、UIView都是UIResponder的子类,都是可以处理事件的。在发生触摸事件的时候系统会先将该事件交给UIApplication处理,通常UIApplication先将事件交给UIWi... 查看详情

200行代码实现简版react🔥(代码片段)

200行代码实现简版react??现在(2018年)react在前端开发领域已经越来越??了,我自己也经常在项目中使用react,但是却总是好奇react的底层实现原理,多次尝试阅读react源代码都无法读下去,确实太难了。前不久在网上看到几篇介绍如... 查看详情

如何令自己所写的对象具有拷贝功能?

如果想让自己的类具备copy方法,并返回不可变类型,必须遵循nscopying协议,并且实现-(id)copyWithZone:(NSZone*)zone;如果让自己的类具备mutableCopy方法,并且返回可变类型,必须遵守NSMutableCopying,并实现-(id)mutableCopyWithZone:(nullableNSZone*)... 查看详情

🔥springboot图文教程2—日志的使用「logback」「log4j」

有天上飞的概念,就要有落地的实现概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例文章结尾配套自测面试题,学完技术自我测试更扎实概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一... 查看详情

🔥如果页面a跳转到页面b,a的viewdiddisappear方法和b的viewdidappear方法哪个先调用?(代码片段)

如果页面A跳转到页面B,A的viewDidDisappear方法和B的viewDidAppear方法哪个先调用?ViewController为一级界面,BViewController和CViewController为两个二级界面ViewController为一级界面,BViewController和CViewController为两个二级界面//我在两个VC里面都... 查看详情

为了限制自己word文档被别人转发给其他人,咋样做?

...如果超过10秒了,就对他说对不起,我发错了。关注我🔥🔥吧 参考技术D不给别人转发 查看详情

无星的前端之旅(十一)——vscode的换行符问题

参考技术A大🔥都知道,Vscode的换行符有LF和CRLF从git换行符LF与CRLF转换问题抄的这里我们可以知道,在macOS和linux上,与windows的换行符是不一致的。一旦使用eslint等工具,就会整个项目出问题。。。1.新建文件怎么设置换行符2... 查看详情

css如何令页面刚好等於浏览器窗口大小,不出现滚动条?

bodymargin:0;.contentwidth:100%;<body><divclass='content'></div></body>这只能使之不出现横向滚动条,纵向的是和楼主所写的html内容有关,如果内容超过了浏览器的高度就会出先纵向滚动条了。参考技术A容器的宽度设置... 查看详情

android面试题:说一下pendingintent和intent的区别

请点赞,你的点赞对我意义重大,满足下我的虚荣心。🔥Hi,我是小彭。本文已收录到GitHub·Android-NoteBook中。这里有Android进阶成长知识体系,有志同道合的朋友,关注公众号[彭旭锐]跟我一起成长。前言从字面意思上理解... 查看详情

计算机基础:今天一次把unicode和utf-8说清楚

请点赞关注,你的支持对我意义重大。🔥Hi,我是小彭。本文已收录到GitHub·Android-NoteBook中。这里有Android进阶成长知识体系,有志同道合的朋友,关注公众号[彭旭锐]带你建立核心竞争力。前言在日常开发过程中,Unicode&a... 查看详情

如何查看用eclipse中所写的android程序位置

找到你的workspace,里面有你的android项目,打开项目文件夹,里面的bin文件夹里有你已经运行过的apk文件。前提是你这个项目在模拟机上跑过。参考技术A右键property 参考技术B打Log输出。 查看详情

android面试题:为什么activity都重建了viewmodel还存在?——jetpack系列

请点赞,你的点赞对我意义重大,满足下我的虚荣心。🔥Hi,我是小彭。本文已收录到GitHub·Android-NoteBook中。这里有Android进阶成长知识体系,有志同道合的朋友,关注公众号[彭旭锐]跟我一起成长。前言ViewModel是Jetpack组... 查看详情

如何看待比自己强的人

如何看待比自己强的人这个时代对于学IT的人来说是幸运的。一个普通的程序猿能够相对轻易地找到工作,能够轻易拿到比其它行业高得多的工资。甚至自己创建世界级的企业亦非空想。马云、马化腾等企业家的成功。似乎时刻... 查看详情

css垂直水平(代码片段)

...的一篇从视图角度充分认识块状与内联元素在浏览器中是如何渲染的。视图角度看块状元素与内联元素1.弄清楚了块状元素与内联元素后,要分析出自己所写的元素的父元素子元素是什么关系;是块状元素含在块状元素中... 查看详情