Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xcode NSUSERDEFAULT未保存_Xcode_Nsuserdefaults - Fatal编程技术网

xcode NSUSERDEFAULT未保存

xcode NSUSERDEFAULT未保存,xcode,nsuserdefaults,Xcode,Nsuserdefaults,1.无论我做什么,saveButton方法都不会保存,对于拒绝,它仍然返回0 2.请帮助我将saveButton修复为userdefaults方法 3.我尝试了多种方法,但其值仍然不变 #import "CCViewController.h" @interface CCViewController () @end @implementation CCViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(

1.无论我做什么,saveButton方法都不会保存,对于拒绝,它仍然返回0 2.请帮助我将saveButton修复为userdefaults方法 3.我尝试了多种方法,但其值仍然不变

#import "CCViewController.h"

@interface CCViewController ()

@end

@implementation CCViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
//    [NSUserDefaults integerForKey:@"REJECTIONS"];

    self.rejectLabel.text=REJECTIONS;
    self.acceptedLabel.text=ACCEPTED;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self.customInputTextField resignFirstResponder];
}
- (IBAction)resetButton:(UIButton *)sender {
    self.rejectLabel.text=@"0";
    self.acceptedLabel.text=@"0";

}
- (IBAction)rejectButton:(UIButton *)sender {
    int current=stringToInt(self.rejectLabel.text);
    int test=stringToInt(self.customInputTextField.text);
    if (test>0) {
        self.rejectLabel.text=self.customInputTextField.text;
        self.customInputTextField.text=nil;
    } else {
        current++;
        self.rejectLabel.text=intToString(current);
    }
    if (stringToInt(self.rejectLabel.text)==3000) {
        UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"Achievement Message" message:@"You have reached 3000 rejections!" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles: nil];
        [alertView show];
    }
}

NSInteger stringToInt(NSString *string) {
    return [string integerValue];
}

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}

- (IBAction)acceptedButton:(UIButton *)sender {
    int current=stringToInt(self.acceptedLabel.text);
    int test=stringToInt(self.customInputTextField.text);
    if (test>0) {        
        self.acceptedLabel.text=self.customInputTextField.text;
        self.customInputTextField.text=nil;
    } else {
        current++;
        self.acceptedLabel.text=intToString(current);
    }
    NSLog(@"after is: %i", current);
}

- (IBAction)unrejectButton:(UIButton *)sender {
    int current=stringToInt(self.rejectLabel.text);
        current--;
    if (current>=0) {
        self.rejectLabel.text=intToString(current);
    } else {UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"Error Message" message:@"You can not have negative rejections!" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
        [alertView show];}
    NSLog(@"after is: %i", current);
}
- (IBAction)saveButton:(UIButton *)sender {
    NSString *rejected=self.rejectLabel.text;
    int reject=intToString(self.rejectLabel.text);
    NSString *accepted=self.acceptedLabel.text;
    NSUserDefaults *rejectTry=[NSUserDefaults standardUserDefaults];
    [rejectTry setObject:self.rejectLabel.text forKey:REJECTIONS];
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setObject:self.rejectLabel.text forKey:REJECTIONS];
    [[NSUserDefaults standardUserDefaults] setValue:@"reject" forKey:REJECTIONS];
    [[NSUserDefaults standardUserDefaults] setValue:self.rejectLabel.text forKey:REJECTIONS];
    [[NSUserDefaults standardUserDefaults] setObject:@"accepted" forKey:ACCEPTED];
}
    NSLog(@"test save %@ & %@ & %@ & %@", REJECTIONS, ACCEPTED, self.rejectLabel.text, self.acceptedLabel.text);
    [rejectTry synchronize];
    NSLog(@"test save %@ & %@ & %@ & %@, &a %i", REJECTIONS, ACCEPTED, self.rejectLabel.text, self.acceptedLabel.text, picker_value);

}

- (IBAction)loadButton:(id)sender {
    self.rejectLabel.text=REJECTIONS;
    self.acceptedLabel.text=ACCEPTED;

}
@end
仍然没有保存到密钥拒绝和接受

NSUserDefaults*prefs=[NSUserDefaults standardUserDefaults]; [prefs setObject:self.rejectLabel.text-forKey:REJECTIONS]

NSUserDefaults*默认值=[NSUserDefaults standardUserDefaults]; [默认设置setObject:self.acceptedLabel.text-forKey:ACCEPTED]

[[NSUserDefaults standardUserDefaults]同步]; NSLog@test保存%@&%@&%@&%@&%@指针%@%@,拒绝,接受,self.rejectLabel.text,self.acceptedLabel.text,默认值,首选项


看起来你把指针弄乱了。您有两个对同一个userDefaults实例的引用,但是在写入每个实例时,您期望得到不同的结果。在这里,让我们浏览一下您的代码

NSString *rejected=self.rejectLabel.text;
int reject=intToString(self.rejectLabel.text);
NSString *accepted=self.acceptedLabel.text;
NSUserDefaults *rejectTry=[NSUserDefaults standardUserDefaults];
我们到此为止。standardUserDefaults是一个单例对象。调用此方法时,您没有创建用户默认值对象。然后继续设置一个值

[rejectTry setObject:self.rejectLabel.text forKey:REJECTIONS];
这个很好用

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:self.rejectLabel.text forKey:REJECTIONS];
现在,您已写入了以前的值

[[NSUserDefaults standardUserDefaults] setValue:@"reject" forKey:REJECTIONS];
你又这样做了

[[NSUserDefaults standardUserDefaults] setValue:self.rejectLabel.text forKey:REJECTIONS];
[[NSUserDefaults standardUserDefaults] setObject:@"accepted" forKey:ACCEPTED];
结论


您应该做的是创建一个像这样的局部变量NSUserDefaults*defaults=[NSUserDefaults standardUserDefaults];然后在你所有的写作中使用这个。然后,您将看到您是如何使用键拒绝多次覆盖该值的

对不起,现在检查我的答案