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