我在我的playground源文件夹(它是一个Public类)中有一个UIVIew子类,我试图只将这个类的一部分作为扩展名放入我的主操场文件中。
当我在操场上宣布以下内容时
public extension SortingAlgorithmView {
public func typeTest() {
print("dfasfndjasfasfdasfdasf test ")
}
}
然后在我的子类中我调用typeTest()它告诉我没有名为typeTest的函数。
答案 0 :(得分:4)
交互式页面不与源文件一起运行;首先编译源文件,然后将其导入到游乐场页面中(这就是为什么你需要创建所有内容public
)。这使得它们更快,因为它们只能被编译一次而不是每次都被解释,但这也意味着它们无法在操场页面中引用代码。
如果要从源文件访问扩展名,则必须将其放在源文件中。源文件无法访问交互式内容。
答案 1 :(得分:2)
这对我来说很好....
编辑:好的,试一试 - 再次,对我来说很好......
// extFuncs.swift ---在sources文件夹中
import UIKit
public extension SortingAlgorithmView {
public func typeTest() {
print("dfasfndjasfasfdasfdasf test ")
}
}
public class SortingAlgorithmView: UIView {
}
// Playground中的一个页面
import UIKit
import PlaygroundSupport
let view = SortingAlgorithmView(frame: CGRect(x: 0, y: 0, width: 600, height: 600))
view.backgroundColor = UIColor.blue
view.typeTest()
PlaygroundPage.current.liveView = view