Mam funkcję:Swift selektor - nierozpoznany selektor wysyłane do instancji
func runRockRotation(rockSprite: SKSpriteNode){
startRockRotationAnimation(rockSprite, isRock: true)
}
Kiedy ja nazywam to tak:
runRockRotation(rock)
to działa, ale nie wydaje się być w stanie umieść go w selektorze NSTimer.
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "runRockRotation:", userInfo: rock, repeats: false)
Czytaj wiele forów, próbowałem:
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "runRockRotation()", userInfo: rock, repeats: false)
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "runRockRotation(_)", userInfo: rock, repeats: false)
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "runRockRotation", userInfo: rock, repeats: false)
Również próbowałem bez skale, stosując nil, ale nic nie wydaje się działać.
Za każdym razem otrzymuję:
2015-04-10 15:49:03.830 Meh[1640:218030] -[__NSCFTimer runAction:completion:]: unrecognized selector sent to instance 0x174166840
2015-04-10 15:49:03.832 Meh[1640:218030] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFTimer runAction:completion:]: unrecognized selector sent to instance 0x174166840'
Jak mogę zadzwonić do mojej funkcji w selektor z parametrem? Wiem, jak to zrobić w Celu C, ale nie mogę tego zrobić w Swift. Cała pomoc zostanie doceniona.
Gdzie dzwoni zegar? Czy licznik czasu jest tworzony w klasie, w której zdefiniowano runRockRotation? Przekazujesz "ja" jako cel, może to nie jest to czego potrzebujesz? – Chackle
use: 'selector:" runRockRotation: "' – duan