[英]What is the equivalent of Java Object in Swift?
我是斯威夫特的noobie。 我想将GameViewController或GameScene的实例传递给HelperClass,如下所示。 在java中,我可以使用Object
。 这是如何在Swift中完成的?
func getHighscores(leaderboardID: String, caller: **whatTypeHere**) {
...
}
所以基本上我想在从GameCenter获得高分时通知正确的来电者。
据我所知,你希望“来电者”成为你想要的任何类型。 在这种情况下,您需要在此处使用“AnyObject”类型。 文档
AnyObject是Swift中“可能是任何东西”的类型。 您可能真正想要的是定义GameViewController和GameScene实现的协议:
protocol HighScoreReceiver {
func gotNewScores(scores:[Int])
}
class GameViewController: UIViewController, HighScoreReceiver {
func gotNewScores(scores: [Int]) {
// do something here
}
}
class GameScene: HighScoreReceiver {
func gotNewScores(scores: [Int]) {
// do something here
}
}
class Helper {
func getHighscores(leaderboardID: String, caller: HighScoreReceiver) {
//get the scores, then...
caller.gotNewScores(scores)
}
}
如果要传递该类的实例,可以这样做。 当然,所有类都是对象, UIViewControllers
也不例外。
func getHighscores(leaderboardID: String, caller: GameViewController) {
// call some method in caller like 'caller.refreshHighScore()'
}
如果你想从GameViewController类中调用该方法,你可以这样做:
getHighscores("str", caller: self)
如果您需要“通知”某类内容,可以使用NSNotificationCenter。 这是一个可以帮助您入门的资源 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.