我有A,B,C,D类(B,C,D是视图控制器)。 A类有一个计时器,并且在计时器结束后我希望我的控制器从A接收数据并相应地更新。
以下是我的A级
class MembersStatusUpdateManager{
var timer:NSTimer = NSTimer(timeInterval: 60*5, target: "self", selector: "updateStatuses", userInfo: nil, repeats: true)
var deltaToken:String = ""
var statusData:NSMutableArray? = nil
var deleteage:MembersStatuUpdatedDelegate?
func startTimer(){
NSRunLoop.currentRunLoop().addTimer(timer, forMode: NSRunLoopCommonModes)
}
func updateStatuses(){
//Update the statues
}
}
我知道使用protocol / delegate我可以将数据发送到类但是在这种情况下我创建了3个委托,每个类一个,还有其他更好的解决方案吗?
答案 0 :(得分:1)
您可以使用全局类概念,以下是此解决方案。
首先创建一个全局类
import Foundation
class User {
class var sharedInstance: User {
struct Static {
static var instance: User?
static var token: dispatch_once_t = 0
}
dispatch_once(&Static.token) {
Static.instance = User()
}
return Static.instance!
}
var timer: NSTimer?
}
然后将数据存储在您想要的类中
class ViewController: UIViewController {
let user = User.sharedInstance
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetails" {
self.user.timer = thisTime
}
}
}
然后检索数据: -
class ViewController: UIViewController {
let user = User.sharedInstance
mylabel.text = self.user.timer
}