如何检查 NSUserDefaults 中的 NSArray 是否包含特定的 NSString
How to check if an NSArray in NSUserDefaults contains a specific NSString
如何检查我添加到 userDefaults
中的 NSMutableArray
的字符串。我尝试使用:
[arrayOfSavedStrings containsObject:currentString];
但是那个 returns 是假的。
如何使用谓词或 for 循环来获取此值?
每次调用 checkForSavedString
时,我都试图将值保存到用户默认值的数组中。
- (void)checkForSavedString {
NSString *stringImAdding = self.stringProperty;
NSMutableArray *arrayOfStrings = [NSMutableArray array];
[arrayOfStrings addObject:stringImAdding];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:arrayOfStrings forKey:@"SavedStrings"];
}
我正在尝试检查数组中是否存在我在 checkForSavedString
方法中保存到 userDefaults
的值。
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
}
我发现解决方案是使用谓词在 arrayOfSavedStrings
中查找 currentString
并过滤该数组以仅包含我正在搜索的内容。
- (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
检查保存的字符串
self.stringProperty = self.stringFromSomewhereElse;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSArray *arrayOfSavedStrings = [userDefaults arrayForKey:@"SavedStrings"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF == %@", self.stringProperty];
NSArray *results = [arrayOfSavedStrings filteredArrayUsingPredicate:predicate];
if (results.count >= 1) {
// my code
}
如何检查我添加到 userDefaults
中的 NSMutableArray
的字符串。我尝试使用:
[arrayOfSavedStrings containsObject:currentString];
但是那个 returns 是假的。
如何使用谓词或 for 循环来获取此值?
每次调用 checkForSavedString
时,我都试图将值保存到用户默认值的数组中。
- (void)checkForSavedString {
NSString *stringImAdding = self.stringProperty;
NSMutableArray *arrayOfStrings = [NSMutableArray array];
[arrayOfStrings addObject:stringImAdding];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:arrayOfStrings forKey:@"SavedStrings"];
}
我正在尝试检查数组中是否存在我在 checkForSavedString
方法中保存到 userDefaults
的值。
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
}
我发现解决方案是使用谓词在 arrayOfSavedStrings
中查找 currentString
并过滤该数组以仅包含我正在搜索的内容。
- (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
检查保存的字符串
self.stringProperty = self.stringFromSomewhereElse;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSArray *arrayOfSavedStrings = [userDefaults arrayForKey:@"SavedStrings"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF == %@", self.stringProperty];
NSArray *results = [arrayOfSavedStrings filteredArrayUsingPredicate:predicate];
if (results.count >= 1) {
// my code
}