Ich bin neu in Swift! Ich kann alle Künstler in der Tabellenansicht korrekt anzeigen. Aber ich kann nicht herausfinden, wie man eine Zeichenkette (Künstlername) in der Liste der unterteilten Künstler findet, die von einer Abfrage zurückgegeben wurden. Mein Code kann jeden Künstler im ersten Abschnitt, aber keinen anderen finden. Es scheint, dass mein rowNum nicht auf 0 zurückgesetzt wird, bevor ich mit der Suche im nächsten Abschnitt anfange (obwohl ich es versucht habe). Beispiel: Sektion 0 (der Buchstabe A) hat derzeit 12 Künstler (0 - 11). Wenn ich versuche, den 3. Künstler (The Beatles) in Abschnitt 1 (den Buchstaben B) zu finden, bekomme ich die richtige Abschnittsnummer von 1, aber die Zeilennummer von 14 (und rowNum sollte 2 für die Beatles sein).Suche nach Künstler (String) in Zeile im Abschnitt der Tabelle
var qryArtists = MPMediaQuery.artistsQuery()
var rowNumInSectionWhereArtistWasFound = 0
var sectionNumOfSectionWhereArtistWasFound = 0
func findIndexAndSectionOfArtistInQuery(artist: String) {
var sectionNum = 0
var rowNum = 0
var found = false
// Search each section
while (sectionNum < qryArtists.itemSections?.count) && (found == false) {
// Search each row in the current section
while (rowNum < qryArtists.collectionSections![sectionNum].range.length) && (found == false) {
if qryArtists.collections![rowNum].items[0].artist == artist {
rowNumInSectionWhereArtistWasFound = rowNum
sectionNumOfSectionWhereArtistWasFound = sectionNum
found = true
}
rowNum = rowNum + 1
}
sectionNum = sectionNum + 1
rowNum = 0 // Reset the rowNum each time you start searching a new section
}
}
Vielen Dank für helping1!
qryArtists.collectionSections! [SectionNum] .range.length) gibt nicht den richtigen Wert zurück, es sollte die Gesamtzahl der Künstler pro Abschnitt rit zurückgeben! Ändern Sie einfach, um die Gesamtzahl von ** Künstler pro Abschnitt zu erhalten ** wird Ihr Problem beheben –
Vielen Dank, aber wie? Ich kann nicht herausfinden, was ich ändern soll. – James64
Ich überprüfte. qryArtists.collectionSections! [sectionNum] .range.length gibt mir 12 Künstler in Sektion 0, gefolgt von 23 Künstlern in Sektion 1. Diese Werte sind korrekt. Ich brauche rowNum = 2. 14 wird was bestimmt (12 + 2 = 14). rowNum sollte bis zu 12 für Abschnitt 0 zählen und dann Ruhe auf 0 bekommen, so dass es dann bis zu 2 für Abschnitt 1 zählen kann. – James64