我对存储的userDefaults数组有问题。
我有一个带有两个字符串mutableArray的简单对象(在图像中,我切除了一些变量)。
当我将这个对象保存在userDefaults中时,顶部(图像的顶部)有相同的对象,当我检索该对象时就会出现问题;我将对象放在底部(由我在mutableArray中添加,添加之前是同一对象)。
问题是我在对象之间进行比较,并且由于第二个数组中有一个空NSCFConstantString
,它返回false。
这是在userDefaults中存储和检索对象的两种方法:
- (void)saveCustomObject:(NSMutableArray *)object key:(NSString *)key
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:object] forKey:key];
[defaults synchronize];
}
- (NSArray *)loadCustomObjectWithKey:(NSString *)key
{
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSavedArray = [currentDefaults objectForKey:key];
NSMutableArray *objectArray = nil;
if (dataRepresentingSavedArray != nil)
{
NSArray *savedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
if (savedArray != nil)
objectArray = [[NSMutableArray alloc] initWithArray:savedArray];
else
objectArray = [[NSMutableArray alloc] init];
}
return objectArray;
}
我希望不必编写逻辑来处理此空字符串。
它来自哪里?