Swift - 导入我的 swift 类
Posted
技术标签:
【中文标题】Swift - 导入我的 swift 类【英文标题】:Swift - Import my swift class 【发布时间】:2016-05-15 07:20:32 【问题描述】:这个问题被问了好几次,但我找不到适合我的问题的解决方案。我正在尝试在我的MainScene.swift
中导入我的Player.swift
类(我使用 Cocos2D - SpriteBuilder 来设置项目;现在使用 Xcode)。
这是我的文件夹结构:
我尝试使用import Player;
和import Player.swift;
,但是当我尝试时收到此错误:No such module 'Player.swift'
如何正确导入?
谢谢!
顺便说一句,我是 Swift 的初学者,所以不要指望我知道所有的术语
【问题讨论】:
你不需要导入任何东西。直接使用 Player 类。 【参考方案1】:您无需在 Swift 中显式导入文件,因为它们在项目中全局可用。如果要访问Player class
的方法或属性,可以直接在MainScene.Swift
文件中制作Player类的对象,即可访问。
e.g var objPlayer = Player()
【讨论】:
仅供参考,我创建了一个文件夹,但自动链接不起作用。我不得不将它们移到一个组中,然后它就起作用了。 我通过创建一个项目来测试这一点,其中一个.swift
文件有import UIkit
而另一个没有。果然,Xcode 抛出了错误,我想啊哈!这个答案是错误的。但后来我想起 UIKit 是一个 Objective C 框架,而不是一个 Swift 框架。【参考方案2】:
无需导入 swift 类即可在其他 swift 类中使用。 它们可以自动使用。
在 Swift 中你只能导入模块,例如任何框架,如 UIKit、MapKit,如下所示。您不能导入 swift 类。
import UIKit
import MapKit
只需确保将其选择用于您尝试使用的目标。
查看下面的图片了解更多信息。
在这张图片中,我的HomeViewController.swift
被选择用于AutolayoutDemo
模块。
在下图中,我为 DetailsViewController.swift
. 类取消选中了 AutolayoutDemo
模块
所以现在当我尝试使用DetailsViewController
编译器时,会出现如下HomeViewController
中的错误。
【讨论】:
请注意,如果您真的想可以导入单个类 - 请参阅 Nick Fox 的回答。【参考方案3】:说到 Swift 导入,有两种情况:
1) 要导入的类型在模块中
在这种情况下,不需要导入语句。只要类型不是private
或fileprivate
,都可以直接访问。
2) 要导入的类型在模块之外
您可以使用以下方法导入整个模块:
import ModuleName
如果您只想从模块中导入特定类型或函数,可以使用以下格式:
import kindOfThing ModuleName.Type
其中 kindOfThing 是 class
/struct
/func
/etc...
可以在 NSHipster here 上找到更深入的探索。
【讨论】:
【参考方案4】:在右窗格中检查该类是否已添加到您的 ios 目标中。
【讨论】:
以上是关于Swift - 导入我的 swift 类的主要内容,如果未能解决你的问题,请参考以下文章