主に、UITouch を含む NSDictionary をアーカイブしようとしています。「-[UITouch encodeWithCoder:]: 認識されないセレクターがインスタンスに送信されました」というエラーが表示され続けます。
辞書から 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];
}
どんな助けでも大歓迎です。