合并字典:选择器 "addEntriesFromDictionary" 没有 class 方法

Combining dictionaries: No class method for selector "addEntriesFromDictionary"

我正在努力处理一个字典,我想在其中从一系列键(P、SP 和 RP)创建一个新字典。

我试图创建一个新的 NSMutableDictionary,它结合了分别具有 P、SP 和 RP 键的所有值的各个字典,但是得到了错误 "No class method for selector "addEntriesFromDictionary" "

这是我的代码:

NSMutableDictionary *newDict = [NSMutableDictionary addEntriesFromDictionary:self.allSPPositions];

@interface className ()
- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary;

@end

@implementation className
- (void)viewDidLoad {

任何帮助或见解将不胜感激!谢谢!

呃,这是一个编译和使用相关方法的例子,你可能不应该在你的界面中调用那个方法,因为它是苹果框架的一部分并且已经预定义了,除非你有特殊的理由这样做:

NSMutableDictionary *dict =[[NSMutableDictionary alloc] init];

[dict setValue:@"Seattle" forKey:@"name"];

[dict setObject:[NSNumber numberWithInt:3] forKey:@"age"];
[dict setObject:[NSDate date] forKey:@"date"];

dict[@"city"]=@"Seattle";

[dict addEntriesFromDictionary:[NSMutableDictionary dictionaryWithObjectsAndKeys: @"Washington",@"location", nil]];

这只是为了让您入门,但它向您展示了如何执行此操作,以便它适合您的情况

编译器会准确地告诉您哪里出了问题。您正在尝试将字典中的项目添加到 NSMutableDictionary class。您需要将字典消息中的广告项发送到 NSMutableDictionary 的 实例

这一行:

NSMutableDictionary *newDict = 
  [NSMutableDictionary addEntriesFromDictionary:self.allSPPositions];

应该阅读

NSMutableDictionary *newDict = 
  [someDictionary addEntriesFromDictionary: self.allSPPositions];

(其中 someDictionary 是您要添加项目的词典。)

甚至

NSUInteger count = [self.allSPPositions count];
NSMutableDictionary *newDict = 
  [NSMutableDictionary dictonaryWithCapacity: count]; 
[newDict addEntriesFromDictionary: self.allSPPositions];

(因为您的代码似乎正在尝试创建一个新的可变字典并添加 self.allSPPositions 的内容。)

如果您的目标是获取 self.allSPPositions 的可变副本,可以使用更简洁的方法:

NSMutableDictionary *mutablePositions = [self.allSPPositions mutableCopy];