-1

わかりました他の同様の質問を見てきましたが、なぜ NSNumber が UIText フィールドと互換性がないのかわかりません。

私の.h

@property (weak, nonatomic) IBOutlet UITextField *initialBudget;
@property (weak, nonatomic) IBOutlet UITextField *expenses;
@property (weak, nonatomic) IBOutlet UITextField *timeSpent;
@property (weak, nonatomic) IBOutlet UITextField *incomePerHour;

これらは私の計算です

- (IBAction)calculateResults:(id)sender {
    double budget = [initialBudget.text doubleValue ];
    double expense = [expenses.text doubleValue];
    double time = [timeSpent.text doubleValue];

    double hourlyIncome = (budget - expense)/time;
    NSNumber *resultNumber = [[NSNumber alloc] initWithDouble:hourlyIncome];
    incomePerHour = resultNumber;
}

どんな助けでも素晴らしいでしょう、ありがとう

4

2 に答える 2

3

UITextField の text プロパティを設定したいとします。

[incomePerHour setText:[resultNumber stringValue]];

さよなら !

編集: NSNumber なしで行うこともできます:

[incomePerHour setText:[NSString stringWithFormat:@"%f", hourlyIncome]];

%f (デフォルトでは小数点以下 6 桁に丸められます) により精度が低下しますが、%.42f小数点以下 42 桁が必要な場合は使用できます。

于 2013-08-13T02:54:08.057 に答える
1

NSNumber が UIText フィールドと互換性がない理由がわかりません。

それらは異なるタイプのオブジェクトであり、Objective-C には C++ や他の言語にあるような暗黙の型変換 (無料のブリッジを除く) がないためです。実際、数値オブジェクトからテキスト フィールド オブジェクトに暗黙的に変換することはあまり意味がありません。

あなたがしたいことはこれです:

// Set incomePerHour text field text property with number formatted to two decimal places
incomePerHour.text = [NSString stringWithFormat:@"%.2f", hourlyIncome];

PS を作成するNSNumberには、次のようにします。

NSNumber *resultNumber = @(hourlyIncome);
于 2013-08-13T02:55:44.617 に答える