/ / Swift - Volanie inicializátora, ktorý by v tejto verzii SDK nemusel existovať - ​​swift

Swift - Výzva inicializátora, ktorý nemusí existovať v tejto verzii SDK - swift

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ď č. 1

Za behu môžete skontrolovať, či trieda reaguje na tento selektor:

if SKPhysicsBody.respondsToSelector("bodyWithTexture:size:") {
self.physicsBody = SKPhysicsBody(texture: tex, size: cs)
} ...