OBJ-C:NSStrings - stringByAppendingString方法

时间:2012-07-24 22:17:09

标签: objective-c c nsstring

为什么这种语法有效

   NSString* newDisplayText = [currentDisplayText stringByAppendingString:digit];

while this,(首先将数字NSStrin分配给新字符串,然后使用stringByAppendingString方法向其发送消息)。不起作用?

  NSString* newDisplayText = digit;
  [newDisplayText stringByAppendingString:currentDisplayText];

发送此方法是否覆盖了我之前设置的值?

2 个答案:

答案 0 :(得分:2)

stringByAppendingString:会返回NSString个对象。它不会修改接收器,因为NSString是不可变的。

在您的情况下,您需要将stringByAppendingString的结果分配给newDisplayText

NSString* newDisplayText = digit;
newDisplayText = [newDisplayText stringByAppendingString:currentDisplayText];

答案 1 :(得分:1)

我很难弄清楚你究竟在问什么,但这是一次尝试:

方法-stringByAppendingString:不会修改其接收方。它构造一个新的NSString*对象并返回它。所以说

[newDisplayText stringByAppendingString:currentDisplayText];

绝对没有任何意义,因为你丢弃了新创建的字符串。