2014-11-06 4 views
0

Я работаю над своим первым приложением для OSX 10.8 с использованием Swift. Я хочу, чтобы состояние батареи диктовало текст в раскрывающемся меню «Сегодня». Этот аспект кода работает, но я очень расстроен, так как мой класс никогда не вызван. Он находится в отдельном поддерживающем скрипте под названием «DeviceMonitor.swift». Спасибо за помощь! Код:Класс не называется Swift iOS

import Foundation 
import UIKit 

class BatteryState { 

    var device: UIDevice 

    init() { 
     self.device = UIDevice.currentDevice() 
     println("Device Initialized") 
    } 

    func isPluggedIn(value: Bool) { 
     let sharedDefaults = NSUserDefaults(suiteName: "group.WidgetExtension") 

     let batteryState = self.device.batteryState 

     if (batteryState == UIDeviceBatteryState.Charging || batteryState == UIDeviceBatteryState.Full){ 
      let isPluggedIn = true 
      println("Plugged In") 
      sharedDefaults?.setObject("Plugged In", forKey: "stringKey") 
     } 

     else { 
      let isPluggedIn = false 
      println("Not Plugged In") 
      sharedDefaults?.setObject("Not Plugged In", forKey: "stringKey") 
     } 
     sharedDefaults?.synchronize() 
    } 
} 

ответ

3

Если вы не сделали это где-то в вашем коде, это выглядит, как вы не зарегистрированы, чтобы получать UIDeviceBatteryLevelDidChangeNotification события. Вы также должны убедиться, что текущий имеет batteryMonitoringEnabled как YES.

+0

Спасибо за помощь. Я добавил «var batteryMonitoringEnabled: Bool» и «batteryMonitoringEnabled = true» в ViewControlled.swift в функции ViewDid Load. Я нашел этот код на веб-сайте Apple. Однако это не помогло. Не могли бы вы указать мне в правильном направлении? – B3TA

+0

Нет, это свойство 'UIDevice'. Пример: 'UIDevice.currentDevice(). BatteryMonitoringEnabled = true'. –

+0

Спасибо. Я добавил это в свой код. Моя текущая проблема заключается в том, что этот скрипт никогда не называется (даже инициализация «init» ничего не печатает). Как я могу это решить? – B3TA

Смежные вопросы