-2

私はObj-Cを学んでいて、この構文を理解するのに苦労しています。最初の行は機能しますが、2番目の行では、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]];
4

4 に答える 4

1

lengthは整数ではなく、整数を返すメッセージの名前です。その結果を計算したいので、-1をメッセージの外に置く必要があります (textここでは、行を短くするために変数を使用しています)。

text = self.historyDisplay.text;
self.historyDisplay.text = [text substringToIndex:[text length] - 1];
于 2013-01-25T21:34:41.247 に答える
0

この[target selector]構文は、メッセージ ディスパッチをカプセル化します。角かっこの外側で、その結果を計算してください。

于 2013-01-25T21:34:51.027 に答える
0

length長さを返すメッセージの名前なので、

[self.historyDisplay.text length-1]

は構文エラーです。

[self.historyDisplay.text length] - 1

代わりは。

于 2013-01-25T21:35:12.090 に答える
0
self.historyDisplay.text = [self.historyDisplay.text substringToIndex:[self.historyDisplay.text length]-1];
于 2013-01-25T21:35:24.197 に答える