我在看这个视频.在9:40左右,屏幕上有一些示例代码,如下面的代码:
//Sieve of Eratosthenes, as seen in WWDC 2015
func primes(n: Int) -> [Int] {
var numbers = [Int](2..<n)
for i in 0..<n-2 {
guard let prime = numbers[i] where prime > 0 else { continue }
for multiple in stride(from: 2 * prime-2, to: n-2, by: prime) {
numbers[multiple] = 0
print("\"numbers[i]")
}
}
return numbers.filter { $0 > 0 }
}
Run Code Online (Sandbox Code Playgroud)
当我在Xcode游乐场中键入它时,我收到以下错误:
条件绑定的初始化程序必须具有可选类型,而不是'Int.'
这是为什么?
我只是想做一些对我来说似乎非常简单的事情,即将发射器放入视图的整个背景中...然后我希望视图能够进行纵向填充和缩放等等,允许发射器看起来不管我做了什么......
我不打算只缩放发射器.我希望对象保持正确的大小,但我希望发射器的区域改变...想象它像photoshop中的"画布大小"(没有调整大小)选项..
我会使用这种效果,例如,为整个场景添加雪或雨,或制作雪球精灵......
事实上,也许我只是没有找到正确的位置,但似乎SKEmitterNode上的任何大小属性都是只读的......我做错了什么?
这里是一些代码,其中生成的发射器只是视图中间的一个小矩形.
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true
if let emitter = SKEmitterNode(fileNamed: "Bokeh") {
emitter.position = view.center
scene.addChild(emitter)
}
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
skView.presentScene(scene)
}
}
Run Code Online (Sandbox Code Playgroud)
我需要澄清一点.对于雪,我希望粒子在进入场景之前实例化,然后通过场景落下,并且只有在离开场景后才会死亡,而不是在整个场景中随机出现,然后继续倒下......我希望雪能占据场景的整个范围.
我了解如何查看表中的一个元素,但是简单地遍历所有元素(无论找到多少元素)以例如点击它们的正确方法是什么?
let indexFromTheQuery = tables.staticTexts.elementBoundByIndex(2)