快速传递不同类之间的数据2

时间:2015-11-18 06:17:26

标签: swift swift2 xcode7

我有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个委托,每个类一个,还有其他更好的解决方案吗?

1 个答案:

答案 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 

}