Пустая строка NSCFConstantString в сохраненных пользовательских значениях

У меня проблема с сохраненным массивом userDefaults.

У меня есть простой объект (в изображении я обрезал некоторые переменные) с двумя строками mutableArray.

Когда я сохраняю этот объект в userDefaults, у меня есть тот же самый объект в верхней части (изображения), проблема возникает, когда я получаю объект; У меня есть объект внизу (добавлен мной в mutableArray, тот же объект, прежде чем добавить его).

введите описание изображения здесь

проблема в том, что я делаю сравнения между объектами, и он возвращает ложь, потому что есть пустой NSCFConstantString во втором массиве.

Это два метода для хранения и извлечения объекта в 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 ответов

Другие вопросы по тегам