这是我刚刚测试过的片段,看起来效果很好 . 这个只是试图下载一个网页并在标签中显示html,但它应该显示重要的位!
class ViewController: UIViewController
{
var bDataLoaded : Bool = false
var bTimerRunning : Bool = false
var backgroundTask: UIBackgroundTaskIdentifier = UIBackgroundTaskInvalid
var updateTimer = NSTimer()
@IBOutlet weak var lblLabel1: UILabel!
override func viewDidLoad()
{
super.viewDidLoad()
}
@IBAction func cmdButton(sender: AnyObject)
{
tryToDownload()
}
func tryToDownload()
{
if bDataLoaded
{
return
}
var html: NSString = ""
do
{
html = try NSString(contentsOfURL: NSURL(string: "http://www.myserver.com/deerer.aspx")!, encoding: NSUTF8StringEncoding)
}
catch _
{
print("Still nothing - try again")
updateTimer = NSTimer.scheduledTimerWithTimeInterval(60, target: self,
selector: "tryToDownload", userInfo: nil, repeats: true)
registerBackgroundTask()
bTimerRunning = true
}
if html != ""
{
lblLabel1.text = html as String
bDataLoaded = true
endBackgroundTask()
}
}
func registerBackgroundTask() {
backgroundTask = UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler {
[unowned self] in
self.endBackgroundTask()
}
assert(backgroundTask != UIBackgroundTaskInvalid)
}
func endBackgroundTask() {
NSLog("Background task ended.")
UIApplication.sharedApplication().endBackgroundTask(backgroundTask)
backgroundTask = UIBackgroundTaskInvalid
}
}