string修饰的梦修改吗_知识点!!!NSString用copy和strong修饰的区别

废话不多说直接上例子。结果在下边!!!!!

用strong修饰:

@interface ViewController ()

@property(nonatomic,strong)NSString *str1;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

NSMutableString *str2 =[NSMutableString stringWithString:@"111"];

self.str1= str2;

NSLog(@"str1:%@",self.str1);

[str2 appendString:@"22"];

NSLog(@"str1:%@",self.str1);

}

打印结果:

2017-08-28 11:15:10.273 20170828demo[2789:529874] str1:111

2017-08-28 11:15:10.273 20170828demo[2789:529874] str1:11122

用copy修饰:

@interface ViewController ()

@property(nonatomic,copy)NSString *str1;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

NSMutableString *str2 =[NSMutableString stringWithString:@"111"];

self.str1 = str2;

NSLog(@"str1:%@",self.str1);

[str2 appendString:@"22"];

NSLog(@"str1:%@",self.str1);

}

打印结果:

2017-08-28 11:16:17.009 20170828demo[2823:536589] str1:111

2017-08-28 11:16:17.009 20170828demo[2823:536589] str1:111

如果用可变字符串给str1赋值,用copy会对str1做深拷贝,这样str2改变str1不变。用strong只是引用计数加一,并不做深拷贝。所以为了保障str1的值不被改变用copy修饰。当然如果你确定str1未来接受的字符串是不可变类型,用strong也无妨。

像这样:

@interface ViewController ()

@property(nonatomic,strong)NSString *str1;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

NSString *str2 =@"111";

self.str1 = str2;

NSLog(@"str1:%@",self.str1);

str2 = @"222";

NSLog(@"str1:%@",self.str1);

}

打印结果:

2017-08-28 11:28:56.649 20170828demo[2948:602140] str1:111

2017-08-28 11:28:59.107 20170828demo[2948:602140] str1:111

如果你对性能要求特别高,或者是个代码极客。。那么能用strong就不用copy,毕竟copy修饰时,set方法中会多出对copy的相关操作。

切记!!!!!!!!!!!!!!

复制一定要用self,因为self相当于[self setStr1:str2] 会调用set方法,set方法里面有玄机。如果用_str 是得不到这个结果的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对于机器学习,到底该选择哪种编程语言?

开发者到底应该学习哪种编程语言才能获得机器学习或数据科学这类工作呢?这是一个非常重要的问题。我们在许多论坛上都讨论过这个问题。今天,我将给出我自己的答案并解释其中原因,但我们首先看一些数据。毕竟,这是机器学习者和数据…

置顶图片代码加链接html,css图片怎么加链接?

css可以通过在图片前加标签实现为图片加链接,语法:。使用此方法引入图片即可为图片添加链接。设定图片超链接,用css样式来实现,其实就是给这个图片的块添加超链接,我们可以通过在这个块的前面添加一个a标签来实现&…

linux上修改html,linux进程名修改

如何修改 Linux 中的进程名在编写网络服务器程序时,为了响应客户端的请CSS布局HTML小编今天和大家分享,我们经常需要新建进程来处理业务流程;而且又是为了关闭某个非法请CSS布局HTML小编今天和大家分享或者关闭长连接的客户端,这时…

AI 崛起,科学家的天下,程序员的谢幕

一边,在移动互联网时代掉队的微软迅速组织起来了一个万人的 AI 团队。 另一边,Facebook、Google 在对各个技术公司进行买买买,为了在 AI 时代的探索中铺好路。 多年前「深蓝」下国际象棋时,所有人都觉得人工智能还是遥不可及的学…

lammps计算聚合物例子_LAMMPS模拟聚合物结构,非晶态聚合物变形行为的模拟,纳米线变形模拟,单轴张力模拟,晶格参数计算...

推荐一个网站,上面有LAMMPS模拟聚合物结构,非晶态聚合物变形行为的模拟,纳米线变形模拟,单轴张力模拟,晶格参数计算的lammps脚本,如下面是晶格参数计算的lammps脚本,具体网址是:LAMMPS Inputs Archives - LAMMPS Tube​lammpstube…

jenkins 手动执行_Jenkins Git client插件命令执行漏洞(CVE201910392)

0x00 漏洞描述Jenkins发布了官方安全公告:https://jenkins.io/security/advisory/2019-09-12/,Git客户端插件中的系统命令执行漏洞。Git客户端插件接受用户指定的值作为调用的参数,git ls-remote以验证指定URL处是否存在Git存储库。这是以允许具有Job/Co…

Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表

Python核心团队计划在2020年停止支持Python 2。NumPy项目自2010年以来一直支持Python 2和Python 3,并且发现支持Python 2对我们有限的资源增加了负担;因此,我们最终计划将停止支持Python 2。现在,我们已经进入了社区支持的Python …

怎么把html表复制到word里,怎么把网页表格复制到word

在互联网时代我们经常要在网页中找资料,文字进行复制粘贴调整格式还好,但是有时网页中的表格复制到Word中,表格的边框线全没了,怎么办呢?那么下面就由学习啦小编给大家分享下把网页表格复制到word的技巧,希望能帮助到…

设置maven 参数调休_IDEA 使用 Maven构建Spark项目

上一篇讲了普通构建spark项目 这次分享用Maven构建Spark项目,中间遇到了很多坑!其根本原因是Scala 与 Spark的版本不一致!本次环境:Java1.8Scala 2.11.8Spark spark-2.1.0-bin-hadoop2.6.tgz 新建Maven项目图1.选择顺序图2.随便写…

语音识别现状与工程师必备技能

作者 | 陈孝良 责编 | 胡永波 目前来看,语音识别的精度和速度比较取决于实际应用环境,在安静环境、标准口音、常见词汇上的语音识别率已经超过95%,完全达到了可用状态,这也是当前语音识别比较火热的原因。 随着技术的发展&#xf…

NPER用计算机怎么算,计算机财务管理第三章详解.doc

计算机财务管理第三章 EXCEL在资金时间价值计算中的应用货币的时间价值,是财务管理的基础。这一章除了对基本理论和公式进行归纳,还重点介绍了Excel中的年金计算函数,它们是全书乃至全部金融计算的通用工具。最后设计了一组有现实背景的简单示…

从来不敷面膜的人_女人睡觉前,敷面膜洗还是不洗?很多人都做错了,难怪皮肤总不好...

敷面膜是众多女孩子在晚上都会进行的一个护肤工作,大家都知道像一些明星几乎是每天都要敷一片面膜的,不过她们是因为长期话大浓妆才比较勤,我们一般工作的女孩子大约一周三次就可以了。面膜可以让我们的皮肤迅速吸收水分和营养,这…

Java 10新特性解密

随着Java开发工具包(JDK)9的发布,大量的注意力都集中在Java的最新特性上,包括引入模块(通过集成项目Jigsaw)。尽管最近的很多关注都集中在这些强大的新功能上,但下一个版本的Java:JDK 10已经开始准备了。在本文中,我们将粗略地介绍…

html清楚css的影响,08、清除浮动的影响.html

Document.box{width:500px;background-color: darkcyan;}.box1{width:200px;height:600px;background-color: darkorchid;margin-top:200px;}.box2{width:200px;height:200px;background-color: darksalmon;clear:both;/* clear:left; 清除左浮动的影响。clear:right; 清除右浮…

智慧气象机器_智慧电缆隧道火热建设中 传感器+机器人成标配

智慧城市是指利用各种信息技术或创新概念,将城市的系统和服务打通、集成,以提升资源运用的效率,优化城市管理和服务,以及改善市民生活质量。它把新一代信息技术充分运用在城市中各行各业基于知识社会下一代创新(创新2.0)的城市信息…

继续教育统考英语计算机监考严吗,网络教育统考监考严吗

网络教育统考监考严吗?其实这个问题只要是好好复习考试的考生来说都是没有多大的问题的,但是可能对于很多人来说更没有时间复习,那么我们就来聊聊网络教育统考监考难不难以,及网络教育作弊的几率高不高的问题。网络教育统考监考严吗网络教育…

不服来战,看Kotlin如何完爆Java

前言:Kotlin因支持谷歌和简化Android开发而声名鹊起。看看它如何解决Java的许多痛点。 Why Kotlin? 如果我今天被问到如何区别开发Android应用程序与其他领域开发时,我会毫不犹豫地回答,以原生方式在不同硬件上执行相同应用程序可能会是其…

算法代码中的循环矩阵在哪体现_「Machine Learning 学习小结」| 向量在梯度下降算法当中的应用...

写在前面:在之前的文章当中提到过,学习梯度下降算法,可能需要一点点线性代数的知识。在本篇文章当中,我们的讨论就涉及到了向量。笔者也曾提到,不妨把向量看成对数据进行批量操作的一种工具,这样可能对我们…

计算机用户 图片存储位置,手机相册在哪个文件夹,详细教您手机图片存放在哪里...

现在使用手机的用户是越来越多了,手机质量都非常好,因此才会受到许多人的褒奖。不过有用户却遇到了,用手机拍摄了照片或者用手机截图,手机连上电脑后,却在电脑上找不到图片,怎么办,下面&#xf…

揭秘京东文件系统JFS的前世今生,支持双11每秒约10万个对象同时读写

背景 作为一家大规模的自营式电商企业,京东需要存储海量的非结构化数据:商品图片、订单文本、仓库流转记录、App客户端文件、日志文件、内部文档等。对于存储这些数据,之前并没有统一的解决方案,都是各个业务线自行解决——MySQL …