【问题标题】:ios Muliplayer strategy: Sending packets with ARC, (no structures)ios 多人游戏策略:使用 ARC 发送数据包,(无结构)
【发布时间】:2013-01-01 20:57:31
【问题描述】:

我正在开始一个多人游戏,但示例显示传递使用结构创建的 NSData 对象。但是使用 ARC,我不能使用 C 结构。 (正确?)似乎我应该使用对象而不是使用 ARC 的 C 结构。但是我如何发送对象的 NSData 数据包呢?

我想我可以硬编码一个大字节数组,但似乎应该有更简单的方法。

另外,如果可以发送一个对象,我如何发送多个对象并能够区分我发送的对象?

谢谢!

【问题讨论】:

  • 今天为了网络我会选择 JSON 编码的字符串而不是任何二进制的东西.. 至少在开始时

标签: objective-c ios game-center multiplayer


【解决方案1】:

ARC 不会阻止您使用 C 结构,您只需要稍微解决自动释放问题。

另外,如果你想要快速而肮脏的处理方式,你可以在你的多人游戏管理器上禁用 ARC,using this method.

请描述您正在遵循哪些代码,哪些代码给您带来了问题。

【讨论】:

  • 我不认为我想禁用 ARC,因为我是 Objective-C 的新手,没有它就没有编程。有什么方法可以在 ARC 系统中工作吗?
  • 很公平,它也是一个“又快又脏”的版本。我已经阅读了游戏中心的文档,它很容易转换为 ARC。在 WWDC2012 上发布的技术演示也是 arc,如果你是注册开发者,你应该可以访问它。
【解决方案2】:

我的问题的答案是使用 NSKeyedArchiver。它允许将一个对象(或任何东西)打包到一个 NSData 对象中。

【讨论】:

  • 这个问题是 GameKit 有一个错误(截至今天),它偶尔会停止接收数据包大小 > ~1000 字节的数据。如果你使用 NSKeyedArchiver,你的包会变大,你可能会停止接收数据,你的代码也会停止工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
相关资源
最近更新 更多