目标C:在消息传递中做算术时的语法



我正在学习 Obj-C 并且难以理解此语法,第一行有效,但第二行,我在整数上执行算术 length (-1) 它抱怨。 这是为什么呢?

self.historyDisplay.text = [self.historyDisplay.text 
          substringToIndex:[self.historyDisplay.text length]];
self.historyDisplay.text = [self.historyDisplay.text 
          substringToIndex:[self.historyDisplay.text length-1]];
length不是

整数,而是返回整数的消息的名称。 你想对这个结果做数学运算,所以你需要-1在消息之外(这里用来缩短行text变量):

text = self.historyDisplay.text;
self.historyDisplay.text = [text substringToIndex:[text length] - 1];

[target selector]语法封装消息调度。对它的结果进行数学计算 - 在方括号之外。

length是返回长度的消息的名称,因此

[self.historyDisplay.text length-1]

是语法错误,应该是

[self.historyDisplay.text length] - 1

相反。

self.historyDisplay.text = [self.historyDisplay.text substringToIndex:[self.historyDisplay.text length]-1];

最新更新