gönderilen bir NSTimer seçicinin içine koyun.Swift seçici tanınmayan seçici bir işleve sahip örneğine
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)
Ayrıca nil kullanarak kaya olmadan çalıştı, ama işe yaramış görünüyor:
var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "runRockRotation:", userInfo: rock, repeats: false)
forumlarda bir sürü Oku Bu çalıştı.
Her zaman olsun:
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'
nasıl bir parametreye sahip bir selektör benim işlevini denir? Bunu Objective C'de nasıl yapacağımı biliyorum, ancak Swift'de bunu yapamıyorum. Tüm yardımlar takdir edilecektir.
Zamanlayıcıyı nerede arıyorsun? Zamanlayıcı, runRockRotation tanımladığınız sınıfta mı oluşturuldu? Hedef olarak "kendini" geçirirsin, belki de ihtiyacın olan bu değil? – Chackle
kullanımı: "selektör:" runRockRotation: "' – duan