„Shangxuetang iOS Elementary Video Tutorial“ ist Shangxuetangs komplettes Set an Video-Tutorials zur Objective-C-Sprache vom einfachen Einstieg bis hin zu fortgeschrittenen Kenntnissen. Der Kurs bietet eine ausführliche Abdeckung der Objective-C-Sprache -C-Sprache. Detaillierte Erläuterung, hauptsächlich Erläuterung der grundlegenden Syntax von Objective-C, objektorientierter Programmierideen, Kapselung (Deklaration und Implementierung von Klassen, Getter- und Setter-Methoden, Eigenschaften), Speicherverwaltung, Vererbung, Polymorphismus, Klassifizierung, Protokoll, Block, NSNumber, Zeichenkette, Array, Wörterbuch, Datum, Dateiverwaltung, Kopie usw.
Adresse für die Videowiedergabe: http://www.php.cn/course/572.html
In Bearbeitung Entwicklung von IOS-Schwierigkeiten in:
1. Und! Frage
Ich habe viele hilfreiche Webseiten im Internet überprüft, aber alle hatten unterschiedliche Meinungen und ich war glücklicherweise verwirrt.
Um mein persönliches Verständnis zu ergänzen: Die schnelle Sprache sieht einfach und elegant aus, enthält aber tatsächlich viele Geheimnisse. Warum es verwenden? Und! Der Zweck besteht darin, den Code klarer zu machen und dem Compiler mehr Hinweise zu geben, um mehr potenzielle Fehler zu finden. Es handelt sich um eine von Apple veröffentlichte Sprache, die dem Charakter von Apple entspricht. Sie erfordert, dass Sie die Dinge herausfinden, bevor Sie Code schreiben, anstatt dem Compiler vage Fragen zu überlassen, um Entscheidungen zu treffen.
2. Die Logik der Tabellenansicht
Da das iOS-System nicht Open Source ist, müssen wir die vorgegebenen Routinen des Systems installieren, um die Tabellenfunktion zu implementieren. Der erste Punkt sind seine beiden Agenten, von denen einer für die Bereitstellung von Daten verantwortlich ist. Die sogenannten Bereitstellungsfunktionen sind die beiden Hauptschnittstellenfunktionen , und die zweite besteht darin, dem System mitzuteilen, wie viele Zeilen es in der Tabelle gibt. Es teilt dem System lediglich mit, welche Daten in jeder Zeile enthalten sind. Die zweite wird mehrmals aufgerufen. Angenommen, eine Seite enthält 10 Zeilen, dann wird diese Schnittstellenfunktion 10 Mal aufgerufen. Allerdings nicht mehr als eine Seite, da das System nur Daten für die Seite anfordert, die der Benutzer gerade sieht. Wenn die Tabelle 100 Daten enthält, wird sie implementiert, indem während des kontinuierlichen Scrollvorgangs die alten Daten verworfen und die neuen Daten eingefügt werden.
Dies ist ein Proxy für die Ansicht, und der andere Proxy ist für den Controller, was das Programm tut, wenn der Benutzer auf ein Element in der Tabelle klickt. Die hier am häufigsten verwendete Funktion ist die Schnittstellenfunktion „didSelected“. Entwickler müssen hier lediglich ihren eigenen Implementierungscode schreiben. Achten Sie darauf, nicht in „didDeselected“ zu schreiben. Die Funktionsnamen sind hier leicht zu verwechseln. „Deselected“ ist die Schnittstelle, die aufgerufen wird, wenn ein Element von „ausgewählt“ in „nicht ausgewählt“ wechselt. Als ich das zum ersten Mal schrieb, hatte ich immer das Gefühl, dass etwas nicht stimmte, aber ich fand es später heraus.
Wie greife ich bei Verwendung des Kundentyp-Prototyps auf das darin enthaltene Etikettenobjekt zu? Die Verwendung von Tags.
Ein gängiges Tabellenbeispiel. Die Zellen in der Tabelle haben nur maximal 2 Beschriftungen, aber ich muss 5 Beschriftungen in mein Projekt einfügen. Da die Schnittstelle in IB gezogen wird, können die Beschriftungen in der Zelle nicht durch Ziehen bei gedrückter Strg-Taste in den Code gezogen werden. Später habe ich ein Beispiel für das Festlegen eines Tag-Werts für jedes Etikett und die anschließende Verwendung von viewByTag
UILabel *name = [cell viewWithTag:TAG_NAME]; UILabel *singer = [cell viewWithTag:TAG_SINGER]; UILabel *code = [cell viewWithTag:TAG_CODE]; UILabel *lang = [cell viewWithTag:TAG_LANG]; UILabel *type = [cell viewWithTag:TAG_TYPE];
im Code gesehen. Auf diese Weise kann das entsprechende Etikett abgerufen werden.
Später habe ich zufällig erfahren, dass es immer noch direkt zugänglich ist, aber es ist etwas schwieriger, zuerst die Zelle mit einer Klasse zu definieren und dann die Label-Anweisung manuell in der Schnittstelle zu erstellen Dieses Mal können Sie die Verbindung vom Storyboard zur Tabellenansicht ziehen.
Dieses Problem wird auf dieser Seite besprochen.
Eine unsachgemäße Konfiguration der Tabelle kann leicht zum Absturz der App führen, und Sie werden oft Folgendes sehen:
Absturz an dieser Stelle: AppDelegate: UIResponder, UIApplicationDelegate
Die angezeigten Informationen per Debug ist:
*** App wird aufgrund der nicht erfassten Ausnahme „NSInvalidArgumentException“ beendet, Grund: „-[UINavigationItem tableView:numberOfRowsInSection:]: unbekannter Selektor an Instanz 0x7fd9d1760d70 gesendet“
Der Grund dafür ist eigentlich, dass ich im Storyboard gesehen habe, dass die Datenquelle der Tabellenansicht nicht verknüpft war, also habe ich die Daten selbst mit der Tabelle verknüpft. Oft bedeutet ein Absturz dieser Art, dass die zugehörige Datenquelle falsch ist. Sie können daher zunächst versuchen, die Verbindung zu trennen. Da diese unterste Ebene nach meinem Verständnis nicht sichtbar ist, kann ich nur vermuten, dass sie mit dieser verknüpft ist und die andere freigibt. Infolgedessen kann das nützliche Objekt nicht gefunden werden, was zum Absturz des Systems führt. Aus diesem Grund nutzen viele erfahrene Spieler ungern ein Strategiebrett, da es schwer zu kontrollieren ist und einige versteckte Dinge schwer zu entdecken sind. Obwohl es etwas mühsamer ist, Code zum Implementieren der Schnittstellenstruktur zu verwenden, ist es besser, als ausreichend zu wissen, dass es so sein wird, wie es geschrieben wird. Zu diesem Zeitpunkt bin ich immer noch auf Grafiktools angewiesen. Einer der Nachteile von Grafiken ist, dass die Storyboards der beiden Projekte nicht vergleichbar sind. Es gab einige Beispiele, bei denen ich dem Tutorial Schritt für Schritt gefolgt bin, aber etwas ist schief gelaufen Der Download-Lehrer hat gute Arbeit geleistet und es gibt keinen Unterschied beim Vergleich der Codes. Allerdings sind die Unterschiede im Storyboard so groß, dass es überhaupt keine Hinweise gibt. Das direkte Überschreiben der Dateien der anderen Partei mit Ihren eigenen ist voller Fehler.
Im Allgemeinen sind meine Fähigkeiten nicht tief genug. In Zukunft müssen wir ein solides Fundament in der Tiefe legen.
3. Die Logik der Suchleiste
In der Vergangenheit wurden Objekte wie Suchleiste und Suchanzeige getrennt. Später stellte Apple eine integrierte Lösung und auch integrierte Suchalgorithmen bereit werden auch in Objekte gekapselt, was die Arbeit der Entwickler vereinfachen soll. Aber für Entwickler wie mich ist es genau das Gegenteil. Im Gegenteil, die einfachste Suchleiste ist für mich besser geeignet, da ich nur dann eine Suche durchführen muss, wenn sich der Inhalt der Suchleiste ändert, und die Tabelle dann einmal aktualisieren muss. Und wenn Sie diese gebündelten Anzeigecontroller aufrufen, müssen Sie mehr Protokolle implementieren und außerdem einen Tabellenansichtscontroller bereitstellen, der die Ergebnisanzeige ausgibt, was mich wirklich schwindelig macht. Die offiziellen Informationen von Apple enthalten auch ein Implementierungsbeispiel, dieses Beispiel selbst ist jedoch sehr kompliziert und umfasst mehrere Ansichtscontroller.
Die auf dieser Seite bereitgestellte Methode ist für mich besser geeignet.
Dies ist ein offizieller Ansatz von Apple. Sie haben den alten Ansatz abgeschafft und empfehlen nun die Verwendung des UI-Suchcontrollers. Es ist jedoch nicht klar, was der Hintergrund für diese Änderung ist ? Es fühlt sich nicht so nützlich an.
4. Verwenden Sie IB, um die Schnittstelle zu erstellen oder in Code zu implementieren?
Die Verwendung von Code zum Festlegen der Größe des Steuerelements kann bei der Anpassung an verschiedene Bildschirme zu Problemen führen. Wir haben noch nicht untersucht, wie die automatische Größenänderung durchgeführt wird.
Aber die Verwendung von Code zum Erstellen einer Schnittstelle ist nicht so schwierig wie gedacht. Tatsächlich müssen Sie nur die Steuerelemente in der Schnittstelle als Objekte behandeln, die Vertrautheit des Objekts festlegen und das Objekt hinzufügen zur Ansicht hinzufügen und den relevanten Delegaten festlegen. Dann ist alles in Ordnung.
Der Kurslehrer Guo Chongzhi ist jung und vielversprechend und trifft eher den Geschmack junger Menschen. Seine Vorträge sind entspannter und natürlicher, sodass wir uns entspannter fühlen und besser zuhören können.
Das obige ist der detaillierte Inhalt vonShangxuetang ios primäres Teilen von Videomaterial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!