是否有 NSMutableDictionary 文字语法来删除元素



NSMutableDictionary中有一个文字语法来添加对象和更改对象,是否有文字语法来删除对象?

是的,但是... :-)

默认情况下不支持此功能,但是用于设置字典元素的新语法使用方法 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;

将删除一个元素。

No.没有。我试图找到证明链接,但没有成功:)

从 iOS 9 和 macOS 10.11 开始,这两个是等效的:

 [dictionary removeObjectForKey:@"key"];
 dictionary[@"key"] = nil;

请参阅基金会发行说明(搜索标题NSMutableDictionary subscript syntax change)。

最新更新