Chcem inicializovať objekt pomocou inicializátora, ktorý existuje iba v SDK 10.10, a v prípade potreby sa vrátiť k tomu, ktorý je tiež v 10.9. Konkrétne
+bodyWithTexture:size:
od SKPhysicsBody v SpriteKit. Niečo ako
if let body = SKPhysicsBody(texture: tex, size: cs) {
self.physicsBody = body
} else {
self.physicsBody = SKPhysicsBody(rectangleOfSize: self.size)
}
Viem o voliteľnom reťazení, aby som zavolal metódu, ktorá sa nemusí na objekte implementovať. Existuje spôsob, ako to urobiť pre inicializátory?
odpovede:
1 pre odpoveď č. 1Za behu môžete skontrolovať, či trieda reaguje na tento selektor:
if SKPhysicsBody.respondsToSelector("bodyWithTexture:size:") {
self.physicsBody = SKPhysicsBody(texture: tex, size: cs)
} ...