gpt4 book ai didi

ios - 归档数据时发送到实例的无法识别的选择器(NSCoding)

转载 作者:IT王子 更新时间:2023-10-29 08:13:14 26 4
gpt4 key购买 nike

-(void)transformObjects:(NSMutableArray*)array key:(NSString*)key
{
NSMutableArray* archiveArray = [[NSMutableArray alloc]initWithCapacity:array.count];

for (Furniture *furniture in array) {

// The error occurs on the line below
NSData *furnitureEncodedObject = [NSKeyedArchiver archivedDataWithRootObject:furniture];
[archiveArray addObject:furnitureEncodedObject];
}

NSUserDefaults *userData = [NSUserDefaults standardUserDefaults];
[userData setObject:archiveArray forKey:key];
}

错误日志:

2014-03-04 10:55:27.881 AppName[10641:60b] -[Furniture encodeWithCoder:]: unrecognized selector sent to instance 0x15d43350

我不知道为什么在尝试归档对象时会收到“无法识别的选择器发送到实例”。

最佳答案

您需要在 Furniture 对象中实现 NSCoding 协议(protocol):

- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.yourpoperty forKey:@"PROPERTY_KEY"];
}

-(id)initWithCoder:(NSCoder *)aDecoder{
if(self = [super init]){
self.yourpoperty = [aDecoder decodeObjectForKey:@"PROPERTY_KEY"];
}
return self;
}

基本上,您指定应该写入(编码)和从文件中读取(解码)的内容。通常对于您想要存储在文件中的每个属性,您都可以像我在此处的示例中所做的那样。

关于ios - 归档数据时发送到实例的无法识别的选择器(NSCoding),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22168753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com