存储的UserDefaults

时间:2018-08-10 09:56:23

标签: ios nsuserdefaults

我对存储的userDefaults数组有问题。

我有一个带有两个字符串mutableArray的简单对象(在图像中,我切除了一些变量)。

当我将这个对象保存在userDefaults中时,顶部(图像的顶部)有相同的对象,当我检索该对象时就会出现问题;我将对象放在底部(由我在mutableArray中添加,添加之前是同一对象)。

enter image description here

问题是我在对象之间进行比较,并且由于第二个数组中有一个空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;
}

我希望不必编写逻辑来处理此空字符串。

它来自哪里?

0 个答案:

没有答案
相关问题