gpt4 book ai didi

NSManagedObject 的 Date 与 NSDate 的 Xcode 9 构建问题

转载 作者:行者123 更新时间:2023-12-04 12:04:22 26 4
gpt4 key购买 nike

Xcode 9 为 Date 生成不同的代码模拟器与设备中实体的类型属性。我有 codegen下功能 Class设置为 category/extension在核心数据中。

直到 Xcode 8.3(最新),它都运行良好( NSDate 总是)。以下是自动生成代码 通过 Xcode 9 (Swift 4) 的属性 -

在设备上 :-

@NSManaged public var requiredDate: Date?

和,

在模拟器上 :-
@NSManaged public var requiredDate: NSDate?

enter image description here

有人遇到过这个问题吗?对于一个拥有 50 多个成员的项目来说,在 Xcode 更新修复它之前解决这个问题的最佳解决方案是什么(我希望有一个苹果雷达)?

最佳答案

让我自己回答这个问题。这些是我的观察(到目前为止)和潜在的解决方案。

这个问题好像随机 .突然,问题消失了,codegen终于落户Date在模拟器和设备上。

但是,我应用了基于宏的解决方案(现在不再需要)来解决它-

// Workaround for Xcode 9 bug. The autogenerated code for 'Date' type attribute is NSDate vs Date based on device vs simualtor.

// This macro condition should be removed once an Xcode update fixes this issue
#if (arch(i386) || arch(x86_64)) // Simulator
requiredDate <- (map["requiredDate"], NSDateTransform()) // milliseconds to NSDate
#else // Device
requiredDate <- (map["requiredDate"], DateTransform()) // milliseconds to Date
#endif

PS:我记得我至少在 iPhone SE Simulator、iPhone 7 设备上测试过它

关于NSManagedObject 的 Date 与 NSDate 的 Xcode 9 构建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46370566/

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