Ich versuche, eine Funktion reloadTable
in meinem HomeViewController von meiner Task-Klasse aufzurufen. Aber ich werde weiter geworfenWie Funktion von einem anderen ViewController aufgerufen wird
Verwendung von Instanz Mitglied 'ReloadTable' auf den Typ 'HomeViewController'; meinst du stattdessen einen Wert vom Typ 'HomeViewController'?
Das ist mein HomeViewController Code:
import UIKit
import Alamofire
import SwiftyJSON
class HomeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
func reloadTable() {
self.displayTask.reloadData()
}
}
Das ist meine Aufgaben Klasse:
import Foundation
import Alamofire
import SwiftyJSON
class Tasks {
static let sharedInstance = Tasks()
var datas: [JSON] = []
func getTaskDetails(){
Alamofire.request(.GET, Data.weeklyEndpoint).validate().responseJSON { response in
switch response.result {
case .Success(let data):
let json = JSON(data)
if let buildings = json.array {
for building in buildings {
if let startDate = building["start_date"].string{
print(startDate)
}
if let tasks = building["tasks"].array{
Tasks.sharedInstance.datas = tasks
HomeViewController.reloadTable()
for task in tasks {
if let taskName = task["task_name"].string {
print(taskName)
}
}
}
}
}
case .Failure(let error):
print("Request failed with error: \(error)")
}
}
}
// for prevent from creating this class object
private init() { }
}
Hallo @Laffen, warum hast du Completion: ([Task]) ->()? Ich bin mir nicht sicher, wie das funktioniert – noobdev
Ich würde dir empfehlen, einen Blick auf den 'Closures'-Link zu werfen, den ich zur Verfügung gestellt habe. Die Dokumentation wird im Detail erklären, was/wie und warum. Sie definieren die 'onCompletion' für Ihre Funktion, die Sie schließen möchten; Sie rufen die onCompletion innerhalb dieser Funktion auf, in der die angeforderten Daten zurückgegeben werden. Wenn Sie die'getTaskDetails'aufrufen, definieren Sie den Rumpf der 'onCompletion'-Anweisung. Hier teilen Sie der Schließung mit, was sie tun soll, wenn sie innerhalb der definierten Funktion aufgerufen wird. Das wurde ein bisschen haarig ... – Laffen