Page 1 of 1

Eine API-Anfrageantwort nach einem Objektarray filtern?

Posted: 16 Jan 2025, 10:33
by Guest
Ich mache einen API-Aufruf für Muskeln im Zusammenhang mit einer Übung. Der Aufruf sieht folgendermaßen aus:

Code: Select all

func loadPrimaryMuscleGroups(primaryMuscleIDs: [Int]) {
print(primaryMuscleIDs)
let url = "https://wger.de/api/v2/muscle"
Alamofire.request(url).responseJSON { response in
let jsonData = JSON(response.result.value!)
if let resData = jsonData["results"].arrayObject {
let resData1 = resData as! [[String:AnyObject]]
if resData1.count == 0 {
print("no primary muscle groups")
self.musclesLabel.isHidden = true
} else {
print("primary muscles used for this exercise are")
print(resData)
self.getMuscleData(muscleUrl: resData1[0]["name"] as! String)
}
}
}
}
Dadurch erhalte ich eine vollständige Liste aller verfügbaren Muskeln. Ich benötige sie, um nur die Muskeln wiederherzustellen, die für die Übung erforderlich sind. Dies wird in den Übungen als Array von Muskel-IDs dargestellt, die ich über das viewDidLoad unten einfüge

Code: Select all

self.loadPrimaryMuscleGroups(primaryMuscleIDs: (exercise?.muscles)!)
Also füge ich das Muskel-Array der Übungen als [Int] in die Funktion ein, aber an diesem Punkt bin ich ratlos, wie ich die Anfrage filtern soll, damit die resultierenden Muskeldaten nur diejenigen sind, die benötigt werden für die Übung.
Ich dachte, es wäre so etwas wie die Verwendung von PrimaryMuscleIDs, um die ID-Eigenschaft eines Muskels in der jsonData-Antwort zu filtern, aber ich bin mir nicht sicher, wie ich das anstellen soll?
Hoffentlich habe ich es klar genug erklärt, dass es gut rüberkommt.