gpt4 book ai didi

objective-c - 从 NSArray 获取字符串,使用 NSUserDefaults 保存

转载 作者:行者123 更新时间:2023-12-04 03:04:44 24 4
gpt4 key购买 nike

我正在尝试使用 NSUserDefaults 将 2 个字符串保存到一个数组中,但是当我想要获取这些字符串时出现了一些问题。

这是我的代码:

- (IBAction)closeSettingsView:(id)sender {


NSArray *saveStrings = [[NSArray alloc] initWithObjects:@"%@", @"%@", yourNameTextField.text, customPhraseTextField.text, nil];
NSUserDefaults *defaultsFields = [NSUserDefaults standardUserDefaults];
[defaultsFields setObject:saveStrings forKey:@"savedStrings"];
[defaultsFields synchronize];

}

- (void)viewDidLoad {
NSUserDefaults *defaultsFields = [NSUserDefaults standardUserDefaults];
NSArray *loadStrings = [defaultsFields stringArrayForKey:@"savedStrings"];

NSString *nameString = [NSString stringWithFormat:@"%@", [loadStrings objectAtIndex:0]];
NSString *phraseString = [NSString stringWithFormat:@"%@", [loadStrings objectAtIndex:1]];

NSLog(@"%@", nameString);
NSLog(@"%@", phraseString);


}

这是我的日志:

2013-07-09 02:59:31.639 Alarm Pro[219:60b] %@
2013-07-09 02:59:31.642 Alarm Pro[219:60b] %@

我该怎么做才能正确读取字符串?

最佳答案

而不是在数组的开头添加两次@"%@"字符串:

NSArray *saveStrings = [[NSArray alloc] initWithObjects:@"%@", @"%@", yourNameTextField.text, customPhraseTextField.text, nil];

只插入变量:

NSArray *saveStrings = [[NSArray alloc] initWithObjects:yourNameTextField.text, customPhraseTextField.text, nil];

根据您的代码,该数组有 4 个对象,第一个和第二个是字符串 @"%@"和 @"%@"。因此,当您调用 [loadStrings objectAtIndex:0] 和 [loadStrings objectAtIndex:1] 时,输出是前两个字符串,@"%@"和 @"%@"。

换句话说,您不是先定义对象的格式,然后使用 initWithObjects: 传递包含字符串的变量,而只是传递对象本身,而没有前面的格式。

关于objective-c - 从 NSArray 获取字符串,使用 NSUserDefaults 保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com