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

Boo*_*oon 6 objective-c nsmutabledictionary objective-c-literals

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

CRD*_*CRD 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
Run Code Online (Sandbox Code Playgroud)

将其添加到您的应用程序,然后:

dict[aKey] = nil;
Run Code Online (Sandbox Code Playgroud)

将删除一个元素.