如何检查NSUserDefaults中的NSArray是否包含特定的NSString

时间:2018-05-23 21:17:04

标签: objective-c nsstring nsarray nsuserdefaults nspredicate

如何检查我添加到NSMutableArray中的userDefaults的字符串。我试过用:

[arrayOfSavedStrings containsObject:currentString];

但是这会返回错误。

我如何使用谓词或for循环来获取此值?

每次调用checkForSavedString时,我都会尝试在用户默认值中将值保存到数组中。

- (void)checkForSavedString {

    NSString *stringImAdding = self.stringProperty;

    NSMutableArray *arrayOfStrings = [NSMutableArray array];
    [arrayOfStrings addObject:stringImAdding];

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    [userDefaults setObject:arrayOfStrings forKey:@"SavedStrings"];

}    

我正在尝试检查我在userDefaults方法中保存到checkForSavedString的值是否存在于数组中。

self.stringProperty = self.stringFromSomewhereElse;

NSString *currentString = [NSString stringWithFormat:@"%@", self.stringProperty];

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

NSArray *arrayOfSavedStrings = [userDefaults objectForKey:@"SavedStrings"];


if ([arrayOfSavedStrings containsObject:currentString]) {

    // my code
}

1 个答案:

答案 0 :(得分:1)

我发现解决方案是使用谓词在b=[1 5; 2 6; 3 7; 4 8]中查找currentString并过滤该数组以仅包含我要搜索的内容。

arrayOfSavedStrings

然后在- (void)checkForSavedString { NSString *stringImAdding = self.stringProperty; NSMutableArray *arrayOfSavedStrings = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] arrayForKey:@"SavedStrings"]]; [arrayOfSavedStrings addObject:stringImAdding]; NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setObject:arrayOfSavedStrings forKey:@"SavedStrings"]; } 检查已保存的字符串

viewDidLoad