我正在尝试为Unity3d IOS应用程序实施Keen.IO分析。我浏览了Keen.IO文档,将库集成到Unity3D生成的xcode项目中,并成功构建。
但是,当我尝试从AppController方法进行简单直接的“AddEvent”调用时,我得到了这个异常。
2014-05-22 18:04:20.591 Adding event to collection: testEvent1
2014-05-22 18:04:20.594 [__NSDictionaryM JSONDataWithOptions:serializeUnsupportedClassesUsingDelegate:selector:error:]: unrecognized selector sent to instance 0x34737e0
2014-05-22 18:04:20.596 Exception: -[__NSDictionaryM JSONDataWithOptions:serializeUnsupportedClassesUsingDelegate:selector:error:]: unrecognized selector sent to instance 0x34737e0
我正在applicationDidBecomeActive()方法中注册KeenClient(工作正常),并使用简单的NSDictionary在applicationDidEnterBackground()方法中调用AddEvent():
NSDictionary *event = [NSDictionary dictionaryWithObjectsAndKeys:@"first view", @"view_name", @"going to", @"action", nil];
[[KeenClient sharedClient] addEvent:event toEventCollection:@"testEvent1" error:nil];
看起来Keen.IO库代码正在引发此异常,但我怀疑它是否与Unity生成的xcode项目有关。
感谢熟悉的人的任何帮助。
答案 0 :(得分:1)
从https://groups.google.com/forum/#!topic/keen-io-devs/hJ776FCa0DA交叉发布。
看起来您可能正在使用旧版本的Keen IO iOS SDK,它使用JSONKit进行JSON序列化。最新版本使用Apple的NSJSONSerialization,它不应该有这个问题。您可以尝试使用cocoapods的最新版本下载最新的通用二进制文件吗?
答案 1 :(得分:0)
另一种方法是整合.NET Keen Client, 虽然我一直在尝试并遇到库兼容性问题。特别是围绕System.Numerics。但是,你的Unity / Mono / .NET foo可能比我强。