0

为什么这种语法有效

   NSString* newDisplayText = [currentDisplayText stringByAppendingString:digit];

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

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

发送这个方法会覆盖我之前设置的值吗?

4

2 回答 2

2

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

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

NSString* newDisplayText = digit;
newDisplayText = [newDisplayText stringByAppendingString:currentDisplayText];
于 2012-07-24T22:20:08.327 回答
1

我很难弄清楚你在问什么,但这里有一个尝试:

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

[newDisplayText stringByAppendingString:currentDisplayText];

绝对什么都不做,因为您正在丢弃新创建的字符串。

于 2012-07-24T22:20:45.487 回答