2015-12-18 34 views
1

我創建一個通用的文件名,並在視圖控制器與下面的代碼使用它的功能:創建一個變量,在各種功能使用視圖控制器

struct MyVariables { 

    static var uname = Int(arc4random_uniform(100000000)) 
    static var shareName = "\(MyVariables.uname).jpg" 

} 

這在屏幕的首次訪問正常工作。但是我每次訪問屏幕時都需要生成另一個隨機數。什麼是正確的方法來做到這一點?

回答

1

您應該在ViewWillAppear方法中調用它。

struct MyVariables { 
    static var uname = Int(arc4random_uniform(100000000)) 
    static var shareName = "\(MyVariables.uname).jpg" 
} 

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated); 
    MyVariables.uname = Int(arc4random_uniform(100000000)) 
    MyVariables.shareName = "\(MyVariables.uname).jpg" 

} 
+1

完美,謝謝。 – OzzY

+0

不客氣。 – casillas

+1

@casillas你需要的只是一個只讀的計算屬性:static var uname:Int {return Int(arc4random_uniform(100000000))} –

0

如果我正確地得到你,你可以在viewDidLoad()上重新定義它們。

struct MyVariables { 
    static var uname = Int(arc4random_uniform(100000000)) 
    static var shareName = "\(MyVariables.uname).jpg" 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    MyVariables.uname = Int(arc4random_uniform(100000000)) 
    MyVariables.shareName = "\(MyVariables.uname).jpg" 
} 
相關問題