Incompatible pointer types assigning to 'UITextField *_strong' from 'NSNumber *_strong'
@property (weak, nonatomic) IBOutlet UITextField *incomePerHour;
- (IBAction)calculateResults:(id)sender {
double hourlyIncome = (budget - expense) / time;
NSNumber *resultNumber = [[NSNumber alloc] initWithDouble:hourlyIncome];
incomePerHour = resultNumber; // ❌ 型別不符
}
incomePerHour 是 UITextField(UI 控制項),而 resultNumber 是 NSNumber(數值包裝類別)。兩者完全不同,無法直接指派。
- (IBAction)calculateResults:(id)sender {
double budget = [initialBudget.text doubleValue];
double expense = [expenses.text doubleValue];
double time = [timeSpent.text doubleValue];
double hourlyIncome = (budget - expense) / time;
// 格式化為字串,保留兩位小數
incomePerHour.text = [NSString stringWithFormat:@"%.2f", hourlyIncome];
}
NSNumberFormatter 處理貨幣、千分位、區域設定等更複雜的格式需求。keyboardType = UIKeyboardTypeDecimalPad 限制輸入數字。time != 0 避免除以零崩潰。