Objective C 到 Swift 转换

Objective C to Swift conversion

我正在尝试翻译 swift SceneKitVehicule apple 示例...但我不知道如何翻译这行代码:

NSArray *pointOfViews = [self.scene.rootNode
    childNodesPassingTest:^BOOL(SCNNode *child, BOOL *stop) {
        return child.camera != nil;
    ];

我试过了:

var pointOfViews = self.scene?.rootNode.childNodesPassingTest{
    (child, stop) -> Bool; return child.camera != nil }

但不确定结果...

删除分号并添加 in

var pointOfViews = self.scene?.rootNode.childNodesPassingTest { (child, stop) -> Bool in
  return child.camera != nil
}

这应该有效。此外,(child: SCNNode, stop: Bool) 或没有类型在 Swift 中都很好,因为编译器已经知道应该返回什么:

    var pov = self.scene?.rootNode.childNodesPassingTest{
        (child, stop) -> Bool in
        return child.camera != nil
    }

在一个空白的 SceneKit 项目中进行了测试,并且 print(pov) 没有错误。 (Xcode 7 测试版 2)