在操场内的类扩展

时间:2017-03-27 20:59:10

标签: swift swift-playground

我在我的playground源文件夹(它是一个Public类)中有一个UIVIew子类,我试图只将这个类的一部分作为扩展名放入我的主操场文件中。

当我在操场上宣布以下内容时

public extension SortingAlgorithmView {

    public func typeTest() {
        print("dfasfndjasfasfdasfdasf test ")
    }
}

然后在我的子类中我调用typeTest()它告诉我没有名为typeTest的函数。

2 个答案:

答案 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