合并字典:选择器 "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];
我正在努力处理一个字典,我想在其中从一系列键(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];