为什么这种语法有效
NSString* newDisplayText = [currentDisplayText stringByAppendingString:digit];
while this,(首先将数字NSStrin分配给新字符串,然后使用stringByAppendingString方法向其发送消息)。不起作用?
NSString* newDisplayText = digit;
[newDisplayText stringByAppendingString:currentDisplayText];
发送此方法是否覆盖了我之前设置的值?
答案 0 :(得分:2)
stringByAppendingString:
会返回NSString
个对象。它不会修改接收器,因为NSString
是不可变的。
在您的情况下,您需要将stringByAppendingString
的结果分配给newDisplayText
。
NSString* newDisplayText = digit;
newDisplayText = [newDisplayText stringByAppendingString:currentDisplayText];
答案 1 :(得分:1)
我很难弄清楚你究竟在问什么,但这是一次尝试:
方法-stringByAppendingString:
不会修改其接收方。它构造一个新的NSString*
对象并返回它。所以说
[newDisplayText stringByAppendingString:currentDisplayText];
绝对没有任何意义,因为你丢弃了新创建的字符串。