Skip to content

Instantly share code, notes, and snippets.

@TyrfingMjolnir
Forked from Alicelovecode/downloaadXML.swift
Created January 20, 2019 21:27
Show Gist options
  • Select an option

  • Save TyrfingMjolnir/4c7d9ea3dbdd88df42b84a3e5d521e84 to your computer and use it in GitHub Desktop.

Select an option

Save TyrfingMjolnir/4c7d9ea3dbdd88df42b84a3e5d521e84 to your computer and use it in GitHub Desktop.
downloaadXML.swift
func downloaadXML(webAddress:String){
if InternetOK() == true{
if let url = URL(string: webAddress){
let task = session.dataTask(with: url, completionHandler: {
(data, response, error) in
if error != nil{
print(error!.localizedDescription)
DispatchQueue.main.async {
self.popAlert(withTitle: "Error", andMessage: error!.localizedDescription)
}
return
}
if let okData = data{
//解析XML資料,要增加一個類別在另一個file檔案裡做解析
let parser = XMLParser(data: okData)
let rssParserDelegate = RSSParserDelegate()
parser.delegate = rssParserDelegate
if parser.parse() == true{
self.objects = rssParserDelegate.getResult()
DispatchQueue.main.async {
self.myTableView.reloadData()
}
}else{
print("parse fail")
}
}
})
task.resume()
}
}else{
popAlert(withTitle: "No internet", andMessage: "Please try again later!")
}
}
func popAlert(withTitle title:String, andMessage message:String){
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
present(alert, animated: true, completion: nil)
}
override func viewDidLoad(){
super.viewDidLoad()
myTableView.dataSource = self
myTableView.delegate = self
/*let news1 = NewsItem(title: "first news", link: "https://www.apple.com")
let news2 = NewsItem(title: "second news", link: "https://www.nike.com")
let news3 = NewsItem(title: "third news", link: "https://www.udemy.com")
objects.append(news1)
objects.append(news2)
objects.append(news3)
隱藏測試用假資料*/
downloaadXML(webAddress: "https://www.cnet.com/rss/iphone-update/")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment