我应该把功能放在哪里?

时间:2016-08-26 13:39:44

标签: ios swift uidevice

我创建了一个功能,可以使用UIDevice检查iPhone是否正在充电。我应该在哪里调用该函数,以便它在整个应用程序会话中监视状态? The Function is called "connectivityStatus",目前它在viewWillAppear

语言:Swift 3
平台:iOS 10(使用UIDevice)

4 个答案:

答案 0 :(得分:3)

Hari请在Appdelegate.h中定义一个函数,并在Appdelegate.m中给出函数的定义。现在您可以通过应用程序使用此功能,如[[Appdelegate appdelegate ]“您的功能名称”]。我希望这将有所帮助。将以下代码粘贴到Appdelegate.m中,以便使用 appdelegate

+(AppDelegate*)appDelegate
{
    return (AppDelegate*)[UIApplication sharedApplication].delegate;
}

<强>迅速

class func appDelegate() -> AppDelegate {
return (UIApplication.sharedApplication().delegate as! AppDelegate)
 }

答案 1 :(得分:2)

或者您可以使用Timer()

// in viewDidAppear()
connectivityStatus()
var timer = Timer.scheduledTimer(timeInterval: 2.0, target: self, selector: #selector(YourClassName.function) , userInfo: nil, repeats: true)

//outside viewDidAppear()
func function(){
    connectivityStatus()
}

每2秒检查一次状态!希望这有帮助!

注意:

如果您决定更频繁地更新它,可以将值从timeInterval:更改为较小的值,但请注意,如果正在进行大量进程,您的应用可能会变慢!

答案 2 :(得分:0)

如果您想在整个应用程序生命周期中监控它,请在 AppDelegate.swift

中的以下方法中进行
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.
    return true
}

答案 3 :(得分:0)

您可以管理类似的内容,

appdelegate

  func connectivityStatus() -> Bool {
    // define your method body here. I assume return type as bool. you can customize as per your need

    return true // or false as per your requirement
}

现在在你想要调用此函数的任何视图控制器中,你可以这样做,

  let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate


 appDelegate.connectivityStatus() // it will return bool as per your defination in method in appdelegate