gpt4 book ai didi

ios - Swift 4 - 无法仅在物理设备上将类型 'NSDate' 的值分配给类型 'Date?'

转载 作者:可可西里 更新时间:2023-11-01 03:14:04 25 4
gpt4 key购买 nike

我已经看到与此错误相关的其他问题,但我没有看到任何人提到我目前遇到的问题。请注意,在转换为 Swift 4 之前,我对这段代码没有任何问题。

下面是有问题的代码:

let verseNotification = NSManagedObject(entity: entity, insertInto: self.managedObjectContext) as! VerseNotification
verseNotification.date_scheduled = NSDate(timeIntervalSinceNow: finalTimeToScheduleSinceNow)

注意属性date_scheduledDate类型:

@NSManaged public var date_scheduled: Date?

当我构建我的应用程序以在我的物理 iPhone(iPhone 7)上以 DEBUG 方式部署时,我收到以下错误(从 Swift 3 转换为 Swift 4 之后):

Cannot assign value of type 'NSDate' to type 'Date?' - Insert 'as Date'

照它说的做就解决了问题...所以,现在我的代码是这样的:

verseNotification.date_scheduled = NSDate(timeIntervalSinceNow: finalTimeToScheduleSinceNow) as Date

...直到我将目标切换到模拟器。当我将目标切换为 Simulator iPhone 7 设备时,我现在收到以下错误:

'NSDate' is not implicitly convertible to 'Date'; did you mean to use 'as' to explicitly convert?

如您在上面所见,关于此错误的令人困惑的事情是,我正在显式转换为 Date 类型。具有讽刺意味的是,我可以为 Simulator iPhone 7 消除此错误的唯一方法是删除我在第一步中添加的 as Date

这是怎么回事?我错过了什么?

我担心构建“通用设备”的发布版本,不知道为什么会出现冲突错误。

更新我发现了一些非常有趣的新东西。

当我构建部署到我的物理 iPhone 7 设备时,我的数据模型对象生成的核心数据定义将 date_scheduled 属性创建为 Date

但是,当我在模拟器 iPhone 7 上构建部署时,生成的数据模型对象的核心日期定义将 date_scheduled 属性创建为 NSDate。

这是 Swift 4 或 Xcode 9 中的新功能吗?从 Swift 3 转换到 Swift 4 后,我是否缺少一个新设置?

最佳答案

这是 Xcode 错误。请报告或打开雷达,以便在未来的版本中修复

关于ios - Swift 4 - 无法仅在物理设备上将类型 'NSDate' 的值分配给类型 'Date?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508770/

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