0
私はiOSデベロッパーが新しく、わかりません。だから、gzファイルがあり、gzipにはxmlファイルがあります。ユーザーがアプリを起動するたびにgzファイルをダウンロードする必要があります。初めてアプリケーションを起動するときに、このコードを使用してデータを取得します。問題は私のXMLファイルが数日間サーバー上でオフラインになっていて、私のアプリはいつも問題なく起動し、問題なくデータを表示します。だから私のすべてのファイルがデバイスにキャッシュされていたのですか?ユーザーがアプリケーションを起動するたびにデータが取得されるようにしたい。私は何か間違ったことをしているのではないか? >ブール{URLSessionキャッシュデータ
中にあなたのWebサービスメソッドを呼び出す - AppDelegate.swift
FUNCアプリケーション(?:のUIApplication、didFinishLaunchingWithOptions launchOptions:[ANYOBJECT NSObjectの]アプリケーション)は、のおかげで
let url = NSURL(string: "http://sitename/xxx.gz")
if url != nil {
let task = URLSession.shared.dataTask(with: url! as URL, completionHandler: { (data, response, error) -> Void in
if error == nil {
let nsdata = data as NSData?
let content = nsdata?.gunzipped()
let dataContent = content as Data?
let urlContent = NSString(data: dataContent!, encoding: String.Encoding.ascii.rawValue) as NSString!
let xml = XMLParser()
xml.getDataforTable(data: urlContent as! String)
NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "XmlDataLoaded"), object: nil))
} else {
NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "DataNotLoaded"), object: nil))
}
})
task.resume()
}
ここでは、このpiecあなたのプロジェクトのコードのe?私はどのファイルですか?あなたの 'AppDelegate'の' didLaunchWithOptions: 'メソッドでこのコードを移動してください。 – Adeel
投稿された通知はどれですか?通知後に何が起こったのですか? –
私はロードビューコントローラでこれを呼び出します。だから私はviewcontrollerを持って、すべての "XmlDataLoaded"通知、私は次のviewcontrollerをロードする場合、私はこの関数を呼び出すviewdidloadで。 – xNinjaSwift