【问题标题】:Keen.io implementation for Unity3d Ios ApplicationUnity3d Ios 应用程序的 Keen.io 实现
【发布时间】:2014-07-13 05:27:27
【问题描述】:

我正在尝试为 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(效果很好)并在 applicationDidEnterBackground() 方法中使用简单的 NSDictionary 调用 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 项目有关。

感谢熟悉的人提供任何帮助。

【问题讨论】:

    标签: ios unity3d keen-io


    【解决方案1】:

    来自https://groups.google.com/forum/#!topic/keen-io-devs/hJ776FCa0DA的交叉发布。

    您可能正在使用旧版本的 Keen IO iOS SDK,它使用 JSONKit 进行 JSON 序列化。最新版本使用 Apple 的 NSJSONSerialization 应该没有这个问题。您可以尝试使用 cocoapods 的最新版本下载最新的通用二进制文件吗?

    【讨论】:

      【解决方案2】:

      另一种方法是集成.NET Keen Client, 尽管我一直在尝试并遇到库兼容性问题。特别是围绕 System.Numerics。但是,您的 Unity/Mono/.NET foo 可能比我的更强大。

      【讨论】:

      • 你是对的,它是。尽管对这个问题感兴趣的人也可能感兴趣。我会将我的“答案”转换为“它对我不起作用,但试试这个”的答案。
      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
      • @reeno - 我认为该链接不包含我建议的答案;该链接实际上我建议的答案。如果该链接失效,则没有什么可集成的。全部 - 我对敏锐的客户端进行了更多研究,我认为在 Unity 升级其 .NET 兼容性之前,它可能无法用于 Unity。但是,一种看起来更可行的方法是直接使用 Keen REST API。看起来一点也不差。
      猜你喜欢
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多