视频中str3的追加方法和str2的有什么区别?

视频中str3的追加方法和str2的有什么区别?

http://img1.sycdn.imooc.com/climg//5961bbc30001d33406980098.jpg如果str3改成:

NSString *str3 = [str1 stringByAppendingFormat:@"%d",123];

这样的情况下:

str2 == str3 是否为真?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
Tender10 2017-07-10 10:20:42

这个是存在的,在后面的课程中会讲到深拷贝和浅拷贝,这个时候就会涉及到内存地址这一块,深拷贝会内存地址不同,浅拷贝内存地址相同,只做值的拷贝。

  • 提问者 张乔升 #1
    好的,谢谢。
    2017-07-11 23:10:14
Tender10 2017-07-09 20:49:03

str2 == str3结果为假,虽然两者之间的字符串内容相同,但是内存地址不同,所以结果为假。==不仅判断内容,而且还判断内存地址。如果仅仅判断字符串内容是否相同可以使用[str2 isEqualToString:str3]来进行判断。


  • 提问者 张乔升 #1
    这个教材里接下来有介绍内存地址的知识点吗? 我想问的是: NSString *str1 = @"abc"; NSString *str2 = [str1 stringByAppendingString:@"123"]; NSString *str3 = [str1 stringByAppendingString:@"123"]; 这种情况下,str2 == str3依然不为真。那么,什么情况下,内存地址会相同? 是不是除了本身,不存在和本身str2==**的某个字符串?
    2017-07-09 23:24:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师