【发布时间】:2009-06-25 17:45:21
【问题描述】:
我有一个用于封装 ABRecordID 的类,当它用作添加到 NSMutableDictionary 的键时,我得到了运行时异常:
"NSInvalidArgumentException: *** -[MyRecordId copyWithZone:]:无法识别的选择器发送到 实例”
MyRecordId 声明为:
@interface MyRecordId : NSObject {
ABRecordID abRecordId;
}
-(id)initWithId:(ABRecordID)anABRecordId;
@property (nonatomic) ABRecordID abRecordId;
@end
添加到字典:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
MyRecordId *recordId = [[MyRecordId alloc] initWithId:anABRecordId];
[dict setObject:@"hello" forKey:recordId];
最后一行导致了异常。我知道您不能将非对象类型存储为字典的键,但我认为将其包装在 NSObject 派生类中就可以了。
我不应该将 ABRecordID 存储在其他对象中吗?我应该做点别的吗?
【问题讨论】:
标签: iphone