Swift 2.3 中没有这样的模块“UserNotifications”
Posted
技术标签:
【中文标题】Swift 2.3 中没有这样的模块“UserNotifications”【英文标题】:No such module "UserNotifications" in Swift 2.3 【发布时间】:2016-11-28 13:07:31 【问题描述】:我在 Xcode 7.3.1 上使用 Swift 2.3,在 AppDelegate 中我尝试导入
import UserNotifications
它给了我“没有这样的模块UserNotifications
”的错误。有什么问题,我该如何解决?
我尝试在定义了SWIFT_VERSION = 2.3
的 Xcode 8 上运行它,但我在 Alamofire 框架中遇到了很多错误,但我也在 Alamofire swift 版本中进行了设置。所以我决定继续开发 Xcode 7。
那么,是因为 Xcode 版本还是我也可以在 Xcode 7 上修复它?我的目标 ios 是 10。我在受支持的平台 10.2 文件夹中复制,所以我可以从 Xcode 7 在 iOS 10 设备上运行
【问题讨论】:
您是否在Linked Framework and Libraries
中添加了UserNotifications.framework
?
要使用 Xcode 8,只需打开您的项目,找到构建设置并将 Use_Legacy_Swift_Version
设置为 true。对您已安装的任何库执行此操作。您可能还需要对库进行代码设计。
@Poles 我在列表中找不到它
@JacobKing 我已经这样做了。但是 Alamofire 仍然给我语法错误 =/
【参考方案1】:
您不能简单地将swift2.3
和swift3
混合在单个目标中的单个项目中,这也不是推荐的方法。
你得到的错误是由于UserNotifications
框架。 xcode8
中已经添加了这个框架,所以你不能在xcode7.3.1
中使用这个框架。
另外,如果您打算在 Xcode 8 中使用 swift2.3,那么您必须使用 Legacy Swift Version
,如果您选择了是,那么您将能够运行 swift2.3 中的项目,但您不会能够使用swift3的语法。
【讨论】:
但是如果我已经设置了旧版本和 swift 版本,为什么 Alamofire 会给我语法错误? =/ alamofire 是什么版本,你的Xcode 是什么版本? 在你的 pod 中将Legacy Swift Version
设置为是 alamofire。【参考方案2】:
要在 xcode 8 中打开 swift 2.3 项目,您必须为 target 和 alamofire 设置旧版表单构建设置。
【讨论】:
以上是关于Swift 2.3 中没有这样的模块“UserNotifications”的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 8 和 Swift 3 中没有这样的模块 Alamofire
没有这样的模块错误“NotificationCenter”WatchOS,Swift
AppDelegate.swift 中没有这样的模块“电容器”