NSMutableArray addObject后,仍为null

前几天有个人问我一个问题。

NSMutableArray *userArrays = [[self getUserDefaultsDatas:@"xxx"]mutableCopy];

[userArrays addObject:@"1"];
    
NSLog(@"-----%@------",userArrays);

2021-12-27 11:37:26.469635+0800 getArrays[21183:188451] -----(null)------

结果是空的,因为,一开始就没存储过key为xxx的内容,因此返回nil, nil的mutableCopy也还是nil, 因此数组加数据也没用。

要换个方式处理:

    NSMutableArray *userArrays = [NSMutableArray array];
    
    [userArrays addObjectsFromArray:[self getUserDefaultsDatas:@"xxx5"]];
    
    [userArrays addObject:@"1"];
    
    NSLog(@"-----%@------",userArrays);


[UtilityClass getUserDefaultsDatas:@"xxx"]的作用大致如下:

#pragma mark --- 提取数据
- (id)getUserDefaultsDatas:(NSString *)keyForUserDefaults{
    
    id finalInfo;
    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    
    if ([defaults valueForKey:keyForUserDefaults]){
        
        finalInfo = [defaults objectForKey:keyForUserDefaults];
    }
    
    return finalInfo;
}

你可能感兴趣的:(NSMutableArray addObject后,仍为null)