【问题标题】:Transfer a class via Bluetooth between two iOS device在两台 iOS 设备之间通过蓝牙传输课程
【发布时间】:2014-05-01 19:10:12
【问题描述】:

我有一个包含所有数据的 C 类。 C类在手机A中初始化,变量(包括数字,字符串,数组)通过手机A操作赋值。现在我想通过蓝牙将C类中的所有数据传输到手机B。是否可以通过蓝牙将整个班级从A转移到B,而不是一个一个地传输数据?

【问题讨论】:

  • 我想你想转移一个实例(对象)而不是一个类

标签: ios objective-c class bluetooth transfer


【解决方案1】:

是的,您应该能够通过将其分解为位来传输它。问题是如何让课程在其他设备上工作,我认为这是不可能的。

【讨论】:

    【解决方案2】:

    手机A通过NSKeyedArchiver序列化C类,将序列化后的数据传给手机B,用NSKeyedUnarchiver反序列化成新的C类实例。

    您必须在 C 类中实现 NSCoder 方法 encodeWithCoderinitWithCoder

    至于传输代码本身,这是不可行的,因为应用程序无法将数据转换为代码并执行它(除非您是 Apple)。

    【讨论】:

    • 谢谢。你的回答对我来说听起来很合理。但我是这方面的初学者,你能提供一些简单的代码吗?例如类名为Settings.h,变量包括int aa、double bb、bool cc、NSString dd。
    • @user3593888 查看与 NSKeyedUnarchiver 相关的文档和示例。如果您在阅读后有特定问题,请在 SO 上提出一个新问题。并不意味着苛刻;但是,如果您要在编程方面取得成功,那么您确实需要至少能够弄清楚使用文档等的基础知识。