黑马程序员技术交流社区

标题: 关于NSMutableString 可变字符串的问题 [打印本页]

作者: 王雪冬    时间: 2014-4-15 09:18
标题: 关于NSMutableString 可变字符串的问题
本帖最后由  王雪冬 于 2014-4-15 10:34 编辑

例如下面的代码:
  1. int main
  2. {
  3.         NSMutableString *s1=[NSMutableString stringWithFormat:@"my age is 10"];

  4.         [s1 appendString:@" my name is jack"]
  5. }
复制代码

代码中,定义了一个可变字符串变量 s1    ,加入他的地址是  00fe11,在创建时,内存中的值为:my age is 10


当执行完第二行时,s1追加上了 my name is jack。


我想问的是,当更改值时,内存中是直接在  00fe11  地址哪里直接修改 为:my age is 10 my name is jack


还是另开辟一段空间 ,例如:00fe22  来存储 my age is 10 my name is jack    ,请问是那种?

作者: 罗冠坤    时间: 2014-4-15 09:25
可变字符串,顾名思义。就是可以改变的。。每次返回它本身,所以是你说的第一条,直接在oofe11中直接改变字符串内容,不创建新的内存地址
作者: 微尘•逐梦    时间: 2014-4-15 10:14
本帖最后由 微尘•逐梦 于 2014-4-15 10:33 编辑

抱歉,我发现我的回答不正确,所以把回帖内容删了。
作者: stone24    时间: 2014-4-15 10:14
可以这样理解 :[s1 appendString:@" my name is jack"] 这个方法是没有返回值(void),说明是直接在源对象的基础上,操作的,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2