gpt4 book ai didi

iphone - NSSet 为 NSData,然后再次退出,对于 GameKit?

转载 作者:行者123 更新时间:2023-12-03 18:32:36 26 4
gpt4 key购买 nike

我正在尝试在不同 iPhone 上运行的两个相同应用程序之间进行一些图像编辑同步。我想将 NSSet * 从一个设备发送到另一个设备(我想这涉及到封装在 NSData 中),然后将其解密回 NSSet,然后在 TouchMoved 类型的函数中使用它。这是可行的,还是我应该努力同步 UIImages?我担心 UIImage 同步对于实时交互来说会有太多延迟。

感谢您的帮助!

最佳答案

我认为您正在处理一组 UITouch。这不会起作用,因为 UITouch 没有实现 NSCoding(我认为)。

您需要从每个 UITouch 中提取出您需要的信息,然后将其放入符合 NSCoding 的内容中。

NSSet * someSet = ...;
NSData * serializedSet = [NSKeyedArchiver archivedDataWithRootObject:someSet];

然后使用游戏工具包发送此数据。

另一个设备在获取数据时,将其转换回集合。

NSData * receivedData = ....;
NSSet * set = [NSKeyedUnarchiver unarchiveObjectWithData:receivedData];

然后您可以自己调用处理该集合所需的任何方法。由于您可能会在此处更改一些 UI 组件,因此请确保调用选择器以在主线程中运行。

此外,只有当您正在处理的触摸事件是无状态的时,这种类型的事情才会起作用,这意味着触摸之前在哪里并不重要。否则这可能会导致一些问题。最好提取出触摸事件后发生了什么变化的想法,然后将其发送到另一个设备,并仅使用 UIImage 变化的增量(换句话说,什么类型的处理发生了变化)来更新另一个设备。发生在其他设备上的图像)。

关于iphone - NSSet 为 NSData,然后再次退出,对于 GameKit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2482306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com