繁体   English   中英

在XCODE / Swift中,如何创建可以从各种视图控制器调用的单个函数?

[英]In XCODE / Swift, how can I create a single function which can be called from various view controllers?

我想实现一组函数,并在我的应用程序中由各种视图控制器调用它们。

这是最好的方法吗?

在整个应用程序中使用的函数的一个示例是将格式化的Float作为字符串返回:

func roundAndFormatFloat(floatToReturn : Float, numDecimalPlaces: Int) -> String{

    let formattedNumber = String(format: "%.\(numDecimalPlaces)f", floatToReturn)
    return formattedNumber

}

我建议创建一个名为Util.swift的新文件,并将该函数粘贴到该文件中。 这就是Util.swift的样子:

import UIKit

func roundAndFormatFloat(floatToReturn : Float, numDecimalPlaces: Int) -> String{

    let formattedNumber = String(format: "%.\(numDecimalPlaces)f", floatToReturn)
    return formattedNumber

}

您可以在Util.swift中放置所需的其他函数和常量。 要在视图控制器中调用它,请执行以下操作:

var str = roundAndFormatFloat(float, numDecimalPlaces: decimalPlaces)

这是另一种选择。 创建另一个名为Util的类,并将此函数作为类函数放入其中:

import UIKit

class Util{
    class func roundAndFormatFloat(floatToReturn : Float, numDecimalPlaces: Int) -> String{

        let formattedNumber = String(format: "%.\(numDecimalPlaces)f", floatToReturn)
        return formattedNumber

    }
}

调用它看起来像这样:

var str = Util.roundAndFormatFloat(float, numDecimalPlaces: decimalPlaces)

您可以在此处添加需要全局使用的其他类方法。 请注意,您无法创建全局可用的变量或常量,因为类变量和常量尚未在Swift中实现。

Swift的方法是扩展UIViewController并在那里添加你的函数。

Swift 3示例:

extension UIViewController {

    func roundAndFormatFloat(floatToReturn : Float, numDecimalPlaces: Int) -> String{
        let formattedNumber = String(format: "%.\(numDecimalPlaces)f", floatToReturn)

        return formattedNumber
    }

    func foo() -> String {
        return "foo"
    }

}

在Swift中创建Util类:

  1. 使用名称Util创建新文件
  2. 创建一个类函数: class func funtionname :() - > {}

〔实施例:

导入UIKit导入基础

    class Util: NSObject {


        //MARK: - SET USER LOGGED IN
        class func set_IsUserLoggedIn(state : Bool) {
            var userloggedin:     UserDefaults?
            userloggedin        = UserDefaults.standard
            userloggedin?.set(state, forKey: "IS_USER_LOGGED_IN")
        }


        //MARK: - GET USER LOGGED IN
        class func get_IsUserLoggedIn() -> Bool {

            var userloggedin:     UserDefaults?
            userloggedin        = UserDefaults.standard

            var checkUser:Bool? = false
            checkUser           = userloggedin?.bool(forKey: "IS_USER_LOGGED_IN")

            return checkUser!
        }



    }

您可以在任何类文件中调用Util函数,如:

 if Util.get_IsUserLoggedIn(){
        print("User is logged in")

    }
    else{
        print("User is not logged in")
    }

暂无
暂无

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

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