-3

这是我昨天的问题的后续行动,我的 .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;

我的 .m 是:

- (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];
}

我尝试使用不同的方法将文本保存在 ViewController 中,当我关闭应用程序时,文本消失了。有人有想法吗?我从夏天开始才开始学习 Objective-C,所以对于潜在的新手问题,我深表歉意。

4

4 回答 4

3

使用NSUserDefaults保存文本/字符串,或者您可以使用SQLite保存/更新/插入/检索数据。当在文本字段中显示它时,只需从 sqlite 检索它......</p>

sqlite教程..

1) http://www.techotopia.com/index.php/An_Example_SQLite_based_iPhone_Application

2) http://dblog.com.au/iphone-development-tutorials/iphone-sdk-tutorial-reading-data-from-a-sqlite-database/

编辑

如果您要存储小部分数据,则可以使用 NSUserDefaults,而其他方法(如 coredata 和 sqlite)适合存储大量数据。

希望对你有帮助...

于 2013-08-14T03:58:00.027 回答
1

您的目标似乎是incomePerHour使用其他文本字段的计算结果更新文本字段的文本。

您需要从结果中创建一个字符串并更新文本字段的文本属性。你真的应该使用NSNumberFormatter货币价值的设置。

double hourlyIncome = (budget - expense)/time;
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *formattedString = [numberFormatter stringFromNumber:@(hourlyIncome)];
incomePerHour.text = formattedString;

更新- 实际问题似乎是关于在应用程序运行之间保持值。这个答案不再那么合适了。

于 2013-08-14T03:41:49.700 回答
0

是的,保存文本最简单的方法是使用 NSUSerDefault。如果您需要保存结构化数据,则应考虑使用 Sqlite。

于 2013-08-14T04:19:57.717 回答
0

您可以使用NSUserDefault来保存您的 textField 的结果。

尝试如下 -

-(void)viewDidLoad
{
  //get and set value to your text field from the userdefault whenever you come from closeing the app..

  double result = [[NSUserDefault standardUserDefault]valueForKey:@"INCOME_VALUE"];
  incomePerHour.text = [NSString stringWithFormat:@"%.2f", result];
}

- (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];

   //set your result's value in the userdefault to access it later....
   [[NSUserDefault standardUserDefault]setDouble:hourlyIncome forKey:@"INCOME_VALUE"];
}

希望这会有所帮助..

于 2013-08-14T04:00:53.760 回答