Der*_*328 56 swift swift-playground xcode6.3
我刚刚升级到Xcode 6.3,他们为Playgrounds提供了一些新功能.如果您创建一个新的游乐场并打开项目导航器,您将看到一个Sources文件夹,里面有一个"SupportCode.swift"文件.它在该文件的顶部读取
此文件(以及此操场的Sources目录中的所有其他Swift源文件)将预编译到一个框架中,该框架可自动提供给.playground.
我尝试将功能放到那里,我的操场无法使用.我究竟做错了什么?我是否必须手动手动编译SupportCode.swift文件?怎么样?
小智 167
您必须将公共访问属性添加到源文件夹中的类,方法和属性,以使它们可以从主操作数文件访问,因为它们被编译器视为单独的模块
小智 16
游乐场适合跑步测试.将所有代码放在Sources目录中,并为每个测试提供一个可公开访问的"测试"类.然后从操场上运行可公开访问的测试.
playground
Test1.run()
Testx.run()
...
Run Code Online (Sandbox Code Playgroud)
Sources/Test1.swift
public class Test1 {
public static func run() {
let my_class = MyClass()
let result = my_class.do_something()
print(result)
}
}
Run Code Online (Sandbox Code Playgroud)
Sources/MyClass.swift
class MyClass {
func do_something() -> String {
return "lol"
}
}
Run Code Online (Sandbox Code Playgroud)
如上所述,当您在Source文件夹中创建.swift文件时,它们将自动可用于您的游乐场代码.要控制对此文件的不同部分的访问,可以使用以下访问级别修饰符:public,internal&private.
大多数情况下,默认访问级别internal可在模块内部访问,但不能在外部访问.
换句话说,如果您声明一个没有访问修饰符的类,您可以从Source文件夹中的另一个文件访问它,但不能在playground的主文件中访问它.另一方面,如果您使用public修饰符声明一个类,则可以在两种情况下访问它.
实际用法:让我们做一个Singleton实现首先:我在Source文件夹中创建一个名为'Singy.swift'的新文件,代码如下:
public class Singy {
public var name = ""
private static var instance: Singy?
private init() {}
public static func getSingy() -> Singy {
if Singy.instance == nil {
Singy.instance = Singy()
}
return Singy.instance!
}
}
Run Code Online (Sandbox Code Playgroud)
第二:从我的操场上
var s1 = Singy.getSingy()
var s2 = Singy.getSingy()
s1.name = "One"
print(s2.name)
Run Code Online (Sandbox Code Playgroud)
s1和s2都引用同一个实例,但它只在类中创建
| 归档时间: |
|
| 查看次数: |
22841 次 |
| 最近记录: |