当参数为 nil 时, NSArray 和 NSMutableArray+arrayWithArray:
返回空数组而不是 nil。
NSLog(@"%@", [[NSArray arrayWithArray:nil] class]);
NSLog(@"%@", [[NSMutableArray arrayWithArray:nil] class]);
输出:
__NSArrayI
__NSArrayM
但是这种行为没有记录在 Apples 文档中。
依赖arrayWithArray:nil
返回空数组的假设是否安全?
或者我应该像这样显式分配空数组:
NSDictionary *dic = [[NSDictionary alloc] init];
NSMutableArray *arr = [dic objectForKey:@"a"];
if (!arr) {
arr = [[NSMutableArray alloc] init];
}