/ / Swift - Ruft einen Initialisierer auf, der in dieser Version des SDK - swift möglicherweise nicht vorhanden ist

Swift - Aufruf eines Initialisierers, der in dieser Version des SDK möglicherweise nicht vorhanden ist - swift

Ich möchte ein Objekt mit einem Initialisierer initialisieren, der nur im SDK 10.10 vorhanden ist, und bei Bedarf auf einen zurückgreifen, der auch in 10.9 enthalten ist. Speziell die +bodyWithTexture:size: von SKPhysicsBody in SpriteKit. So etwas wie

        if let body = SKPhysicsBody(texture: tex, size: cs) {
self.physicsBody = body
} else {
self.physicsBody = SKPhysicsBody(rectangleOfSize: self.size)
}

Es ist mir bekannt, dass eine optionale Verkettung zum Aufrufen einer Methode für ein Objekt möglicherweise nicht implementiert ist. Gibt es eine Möglichkeit, dies für Initialisierer zu tun?

Antworten:

1 für die Antwort № 1

Sie können zur Laufzeit überprüfen, ob die Klasse auf diesen Selektor reagiert:

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