简体   繁体   English

如何在函数内部的类外部使用变量

[英]how to use a variable outside of class which is inside a function

       import UIKit
       import CoreData

       var i = 9
       var b = Calculate // i want to use that 'Calculate' variable here and same for other 'percentage' var 

       class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {........
              .....................
               ......................
               ..................
               var request = NSFetchRequest(entityName: "Entity")
                request.returnsObjectsAsFaults = false;
               // request.predicate = NSPredicate(format: " = %@", txt2.text!)
                request.predicate = predicate

                let results:NSArray = try context.executeFetchRequest(request) as! [NSManagedObject]
                //request.predicate = predicate


                if (results.count > 0){
                    var res = results[0] as! NSManagedObject
                    txt1.text = res.valueForKey("txt1") as! String
                    //.text = res.valueForKey("password") as! String

                    print("atendence = \(results.count)")

                    print("percentage = \(100*results.count/30)")
                    print(results.count)

                    var calculate = 100*results.count/30

                    var percentage = Float(calculate)




                    txt4.text = "\(percentage)%"
                    txt2.text = "\(results.count)"
                    txt3.text = "\(100*results.count/30)"

              ................................
                .......................}

i want to use this two variables var percentage and var calculate outside of Viewcontrollerclass and sorry if not asking properly or if am not able to clarify my question , because am totally new here 我想在Viewcontrollerclass之外使用这两个变量var percent和var计算,并且抱歉,如果询问不正确或无法澄清我的问题,因为这是全新的

Don't do that. 不要那样做

All data is supposed to be encapsulated. 所有数据都应该被封装。
Use a struct with static variables outside a class. 在类外使用带有静态变量的结构。

struct Global {
  static var i = 9
  static var calculate : Float = 0.0
}

Access the variable with 使用访问变量

let x = Global.calculate

You create a shared instance like follows for the variables you want to access globally. 您为要全局访问的变量创建如下所示的共享实例。

import UIKit

class globalVariables {
    class var sharedInstance: globalVariables {
        struct Static {
            static var instance: globalVariables?
            static var token: dispatch_once_t = 0
        }

        dispatch_once(&Static.token) {
            Static.instance = globalVariables()
        }

        return Static.instance!
    }

    var a: String = ""
    var b: String = ""
}

And in any viewControllers, you can access it like 在任何viewControllers中,您都可以像

globalVariables.sharedInstance.a 
globalVariables.sharedInstance.b

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM