我正在开发一个RoomPlan应用程序。我已经成功地使用NSKeyedArchiver捕获、保存和加载扫描。但是,对于在模拟器上运行或在没有LiDAR扫描仪的设备上运行的应用程序,我没有保存在该设备上的任何扫描,因此无法测试该功能。我想用一两个测试扫描来“填充”我的应用程序,以便能够在这些设备上测试我的应用程序。
这里的核心问题是,我不知道如何在Swift中“捕获”对象,并将它们保存在应用程序中,而不是在NSKeyedArchiver中,后者是每个设备的本地设备。
发布于 2022-11-02 10:06:17
你这样做:
RoomScan -(通过NSKeyedArchiver/Encodable)--> Data --(保存)--> UserDefaultsUserDefaults --(读)-> Data --(通过NSUnarchiver/Decodable)--> RoomScan所以,我的建议是:
扫描一个房间,然后把它转换成Data,如果需要的话保存它。通过强制读取或在保存到UserDefaults之前拦截该UserDefaults。
为“拦截”选择更容易/更快的解决方案:
将Data转换为HexString (参见How to convert Data to hex string in swift),将其打印到控制台,复制输出或将内容保存到数据文件中,并通过AirDrop/Mail发送。
在您的项目中创建一个新文件,并在需要时读取它(模拟器等)。取决于选择的解决方案,因为写入可能不同,阅读也可能不同。
https://stackoverflow.com/questions/74287026
复制相似问题