我在 Objective-C 中有这条线。
NSMutableArray *mutableArray;
[mutableArray addObject:@{ @"Something" : aObject, @"Otherthing" : anotherObject }];
该@{ ... }
部分具体做什么?它是一个对象,但它似乎动态地创建了某种键值对。
我在 Objective-C 中有这条线。
NSMutableArray *mutableArray;
[mutableArray addObject:@{ @"Something" : aObject, @"Otherthing" : anotherObject }];
该@{ ... }
部分具体做什么?它是一个对象,但它似乎动态地创建了某种键值对。
正如你所说,它正在创建 NSDictionary 对象。语法很简单
NSDictionary* dictionary = @{key: object, key: object};
在您的示例中,键是 NSString 类的对象。重要的是要记住字典复制键并保留值。
这些被称为字面量。Apple LLVM Compiler 4.0 及更高版本可以使用它。
在您的问题中,表达式创建了一个字典
NSDictionary *settings = @{ AVEncoderAudioQualityKey : @(AVAudioQualityMax) };
使用和其他类似方法创建的类似数组NSArray arrayWithArray
现在可以轻松完成
NSArray *array = @[ @"Hello", @"World"];
你甚至不需要nil
哨兵。
@{ ... } 语法是创建作为现代 Objective-C 的一部分引入的 NSDictionary 的简写方式。语法@{@"key1": object1, @"key2": object2}
只是更详细方法的简写,例如[NSDictionary dictionaryWithObjectsAndKeys:]
其他一些方法。