Programming In Objective-C 2.0 本から分数計算アプリを作成しています。Lion 用の XCode 4.1 を使用しています。コードにエラーを入力することなく、完全かつ正常に完了しました。しかし、アプリの実行中に数字ボタンを押すと、ラベルにテキストが入力されません。数字ボタンを押すと、UIButton 送信者タグ (割り当てたもの) が見つかるはずです。
-(IBAction)clickDigit:(UIButton *)sender {
int digit = sender.tag;
[self processDigit:digit];
}
そして、このコードに送信されます:
-(void)processDigit:(int)digit {
currentNumber = currentNumber * 10 + digit;
[displayString appendString:[NSString stringWithFormat:@"%i", digit]];
display.text = displayString;
NSLog(@"Processed");
}
コンソールは処理済みを出力します。このボタンが機能していることを示しているため、問題は次のコード行にあります。
[displayString appendString:[NSString stringWithFormat:@"%i", digit]];
display.text = displayString;
display は UILabel です。これはインスタンス変数ですが、IBOutlet ではなく、そのプロパティで IBOutlet として宣言されています。
@property (nonatomic, retain)IBOutlet UILabel *display;
コードアシスタントへの接続を使用して、.xib 画面のラベルを接続しました。文字通り、それを宣言に結び付けることができます。だから私はそれをプロパティに接続しました。
問題は、display が UILabel であり、その text プロパティが NSMutableString ではなく NSString を必要とするという事実にあります。しかし、NSString は文字列や、このアプリで必要な他の多くのメソッドを追加することはできません。どうすればこれを機能させることができますか?