首先,我试图归档一个带有 UITouch 的 NSDictionary。我不断收到一条错误消息,上面写着“-[UITouch encodeWithCoder:]: unrecognized selector sent to instance”。
如果我从字典中删除 UITouch 对象,我不会收到错误消息。
我一直试图自己弄清楚,包括过去几个小时通过谷歌搜索,但还没有找到如何将 UITouch 对象存储在 NSDictionary 中。
这是我正在使用的方法:
- (void)sendMoveWithTouch:(id)touch andTouchesType:(TouchesType)touchesType {
MessageMove message;
message.message.messageType = kMessageTypeMove;
message.touchesType = touchesType;
NSData *messageData = [NSData dataWithBytes:&message length:sizeof(MessageMove)];
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:@{@"message" : messageData, @"touch": touch} forKey:@"touchesDict"]; //RECEIVE ERROR HERE. If I remove the UITouch object, everything passes correctly
[archiver finishEncoding];
[self sendData:data];
}
任何帮助将不胜感激。