Пустая строка 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;
}
Я бы предпочел не писать логику для обработки этой пустой строки.
Откуда это?