我有这个问题。我有手术要做。但如果我想存钱呢?我想保存所有(文本字段数据选择器和结果标签)
我有2个文本字段和1个datapicker +标签中的结果。
这是我的M:
#import "ViewController.h"
#import "ResultViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize myLabel;
-(IBAction)calculate:(id)sender{
NSDate *past = _data.date ;
NSDate *now = [NSDate date];
NSCalendar *gregorianCalendar = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSDayCalendarUnit;
NSDateComponents *components = [gregorianCalendar components:unitFlags
fromDate:past
toDate:now
options:0];
int z = [components day];
int a = ([_textField1.text intValue]);
int b = a*([_textField2.text intValue]);
int r = b * z / 20;
myLabel.text = [[NSString alloc] initWithFormat:@"%d", r];
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSDate *past = _data.date ;
NSDate *now = [NSDate date];
NSCalendar *gregorianCalendar = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSDayCalendarUnit;
NSDateComponents *components = [gregorianCalendar components:unitFlags
fromDate:past
toDate:now
options:0];
int z = [components day];
int a = ([_textField1.text intValue]);
int b = a*([_textField2.text intValue]);
int r = b * z / 20;
myLabel.text = [[NSString alloc] initWithFormat:@"%d", r];
self.textField1.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"key1"];
self.textField2.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"key2"];
self.myLabel.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"key3"];
self.data = [[NSUserDefaults standardUserDefaults] objectForKey:@"key4"];
[[NSUserDefaults standardUserDefaults]synchronize];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"detail"]) {
ResultViewController* destVC = (ResultViewController*)segue.destinationViewController;
destVC.myString = self.myLabel.text;
}
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:YES];
[[NSUserDefaults standardUserDefaults] setObject:self.textField1.text forKey:@"key1"];
[[NSUserDefaults standardUserDefaults] setObject:self.textField2.text forKey:@"key2"];
[[NSUserDefaults standardUserDefaults] setObject:self.myLabel.text forKey:@"key3"];
[[NSUserDefaults standardUserDefaults] setObject:self.data forKey:@"key4"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
@end这个代码是正确的吗?
谢谢你……
发布于 2012-11-27 03:14:36
有几件事。
-viewDidLoad中,你出于某种原因调用了-synchronize。所要做的就是对用户默认设置上的任何事件执行保存功能。在我看来,你没有,可以跳过这个对-synchronize.我没有看到任何关于用户默认设置的东西看起来有点乱。因此,也许您可以指定错误或未正确完成的确切位置,以获得更好的帮助。
发布于 2012-11-27 03:13:19
是的,代码看起来是正确的。您的_data变量类型是什么?如果您在保存到NSUser时遇到问题。尝试保存self.data.date
一个技巧:在从NSUserdefautls获得值之后,不需要同步。将值设置为NSUserdefaults后使用synchronize。
https://stackoverflow.com/questions/13571294
复制相似问题