NSMutable从NS弱拷贝后,……字数限制太少了

NSMutable从NS弱拷贝后,……字数限制太少了

NSMutable 从 NS 弱拷贝后,是否可以通过 NSMutable 改变该地址指向内容,从而达到无需强拷贝而修改NS的内容的目的?


就如c一样

char * const cp为一个指向cp的不可变指针(不可以改变这个指针指向地址,但可改变指针所指的内容)

const char * cp 一个指向不可变字符变量的指针cp(可以改变指针所指的地址,但不可以通过本指针修改地址的内容)


假若

char * const p = 'a';

const char * cp = p;

那么不能通过cp改变a,而用p则可以改变a


在oc中 用NSMutable弱拷贝NS后是否用同样的效果?


================================


经过实验是无法通过这样的弱拷贝达到修改NS的效果的

NSString *nstr = @"a";

NSMutableString *mstr = [nstr copy];

mstr = @"b";

NSLog(@"%@ %@", nstr ,mstr);

输出

a b

且会收到警告

incompatible pointer types assigning to 'NSMutableString*' form 'NSStnring *'

是否意味着编译器在编译时会将这种弱引用转换成强引用处理?

是否说明这种声明 `NSMutableString *mstr = [nstr copy];` 在oc中其实并无意义?

正在回答

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

2回答

NSMutableString是指针对于可变字符串,当你的字符串需要增加或删除时,都需要使用NSMutableString,这个肯定是有意义的。对于你提出的关于提问功能的意见,我们会及时反馈。感谢你的意见和建议。

  • chinanoahli 提问者 #1
    NSMutableString确实是有意义的,但我的意思是 NSMutableString *mstr = [nstr copy]; 这样使用,是否是一种无意义的做法?
    2017-02-24 05:44:47
  • Tender10 回复 提问者 chinanoahli #2
    一般NSMutableString是不会采用这种方法声明的,可以采用NSMutableString *mstr = [mstr mutableCopy];
    2017-02-24 09:21:49
  • chinanoahli 提问者 #3
    非常感谢!
    2017-02-24 09:22:54
提问者 chinanoahli 2017-02-22 07:03:52

另外希望这个提问功能可以支持markdown语法,还有代码块<code></code>的显示效果,包含代码却没有代码块效果的页面真的反人类……

还有一个问题是,怎么才能将xcode 的编辑区域的警告或错误信息复制下来,每次有问题都只能对着打的话实在不太方便

http://img1.sycdn.imooc.com/climg//58acc8200001412515200072.jpg

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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