在 NSMutableDictionary 中添加对象和更改对象有文字语法,是否有删除对象的文字语法?
问问题
1524 次
3 回答
5
对,但是... :-)
默认情况下不支持,但是设置字典元素的新语法使用方法setObject:forKeyedSubscript:
而不是setObject:forKey:
. 因此,您可以编写一个类别来替换前者并设置或删除元素:
@implementation NSMutableDictionary (RemoveWithNil)
- (void) setObject:(id)obj forKeyedSubscript:(id<NSCopying>)key
{
if (obj)
[self setObject:obj forKey:key];
else
[self removeObjectForKey:key];
}
@end
将其添加到您的应用程序中,然后:
dict[aKey] = nil;
将删除一个元素。
于 2014-02-26T21:25:16.637 回答
3
不,那里没有。我试图找到证明链接但没有成功:)
于 2014-02-26T20:34:47.087 回答
2
从 iOS 9 和 macOS 10.11 开始,这两者是等价的:
[dictionary removeObjectForKey:@"key"];
dictionary[@"key"] = nil;
请参阅Foundation 发行说明(搜索标题NSMutableDictionary subscript syntax change
)。
于 2017-09-19T17:45:10.250 回答