我想在每次在设备上运行应用时运行解析器。使用模拟器,它运行良好,因为每次应用程序都在构建和运行。
该项目非常简单,在Xcode中启动了单视图应用程序。我在ViewController中添加了一个名为label的标签。然后我创建了一个名为Parser.swift的解析器。
这是代码:
class ViewController: UIViewController, ParserDelegate {
var parser : Parser!
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Parser
let url = NSURL(string: "http://....json")
parser = Parser()
parser.delegate = self
parser.startParsing(url!)
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func parsingWasFinished() {
//println("Parser ended!");
self.label.text = "End"
}
}
Parser与写作无关。
工作正常。从“开始”开始,标签在解析器完成时以“结束”结束。
问题在于我的设备:当我结束/重新启动应用程序时,解析器无法启动,而且我总是“结束”。
你知道我做错了吗?每次应用程序启动时,解析器如何启动?
非常感谢。
修改
class ViewController: UIViewController, ParserDelegate {
var parser : Parser!
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(true);
// Parser
let url = NSURL(string: "http://...json")
parser = Parser()
parser.delegate = self
parser.startParsing(url!)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func parsingWasFinished() {
//println("Parser ended!");
self.label.text = "End"
}
}