我有一个包含一些对象的 NSDictionary:一个 UITouches 的 NSSet、一个 UIEvent 和一个 NSString。
当我尝试将字典编码为 NSData 时,字符串会正确编码。我在对 UITouch 进行编码时遇到了错误,但我找到了一种使用一些代码扩展类的方法,以便可以对 UITouch 进行编码。但是,我仍然无法对 UIEvent(实际上是 UITouchesEvent)进行编码。如何扩展 UIEvent 或 UIInternalEvent 以使它们可编码为 NSData?
我用于编码/解码的方法:
-(NSString *)stringFromDictionary:(NSDictionary *)dict{
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:dict forKey:@"dictKey"];
[archiver finishEncoding];
return [Base64 encode:data];
}
-(NSDictionary *)dictionaryFromString:(NSString *)string{
NSData *data = [[NSMutableData alloc] initWithData:[Base64 decode:string]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
NSDictionary *myDictionary = [unarchiver decodeObjectForKey:@"dictKey"];
[unarchiver finishDecoding];
return myDictionary;
}
我得到的错误:
-[UITouchesEvent encodeWithCoder:]: unrecognized selector sent to instance
如果我遗漏了有关调试的任何重要信息,请告诉我。谢谢!