为什么苹果能做到这一点:“扩展可能不包含存储的属性”,除非你是Apple?我错过了什么?
import CoreGraphics
import GameplayKit
import simd
/**
@header
SceneKit framework category additions related to GameplayKit integration.
@copyright 2017 Apple, Inc. All rights reserve.
*/
extension SCNNode {
/**
* The GKEntity associated with the node via a GKSCNNodeComponent.
*
* @see GKEntity
*/
@available(OSX 10.13, *)
weak open var entity: GKEntity?
}
/**
* Adds conformance to GKSceneRootNodeType for usage as rootNode of GKScene
*/
extension SCNScene : GKSceneRootNodeType {
}
...我不能做到这一点:
extension SCNNode {
weak open var ntity: GKEntity?
}
,并得到了两个错误:
- '弱' 可能只适用到类和类绑定的协议类型,而不是'< <错误类型>>'
- 扩展可能不包含存储的原型rtyies
我想实际做的是在10.13之前提供一个OSX版本的实体属性,所以额外的建议也是值得欢迎的。
他们真的不能。 'SCNNode'可能是一个Obj-C扩展,这就是Swift接口生成的方式。这真是无效的Swift。 – Sulthan
它可以是一个计算属性,它们看起来与生成的接口中存储的属性相同。 –