ios - today widget NSTimer memory read error?
PHP中文网
PHP中文网 2017-04-18 09:23:04
0
1
675

在today widget里使用NSTimer,发生错误警报:error: memory read failed for 0x0

class TodayViewController: UIViewController, NCWidgetProviding {
    var timer: NSTimer!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view from its nib.
        print("widget")
        
        self.preferredContentSize = CGSizeMake(0,100);

        timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: Selector(getBattery()), userInfo: nil, repeats: true)
    }
    
    func getBattery() {
        print("level")
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)) {
        // Perform any setup necessary in order to update the view.

        // If an error is encountered, use NCUpdateResult.Failed
        // If there's no update required, use NCUpdateResult.NoData
        // If there's an update, use NCUpdateResult.NewData
        
        completionHandler(NCUpdateResult.NewData)
    }
    
    deinit {
        timer.invalidate()
    }
}
PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(1)
小葫芦

Mari kita meneka:
1 ralat: bacaan memori gagal untuk 0x0. 0x0 ialah objek yang dilepaskan. Idea umum ialah objek dilepaskan dan kemudian dipanggil, jadi ralat berlaku
2

    timer.invalidate()
}
Deinit adalah bersamaan dengan dealloc Pemasa harus dialih keluar terlebih dahulu sebelum rujukan bulatnya sendiri dikeluarkan, dan kemudian deinit dipanggil. Saya rasa seperti ada sesuatu yang tidak kena di sini. Pada masa yang sesuai, jeda pemasa, dan kemudian tetapkan pemasa kepada sifar. Lihat jika ini berfungsi

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan