Mit Swift 3 wird die func tableView(_ tableView: UITableView, cellForRowAt indexPath: @autoclosure @escaping IndexPath) -> UITableViewCell
von UITableView aufgerufen. Ich möchte verfolgen, wer diese Funktion aufruft. Soweit ich weiß, wird dies nur dann aufgerufen, wenn eine Zelle angezeigt werden soll. In Stacktrace override internal func tableView(_ tableView: UITableView, numberOfRowsInSection section: @autoclosure @escaping Int) -> Int
wird jedoch nicht aufgerufen und es gibt kein Stacktrace. Könnte jemand raten, wo er anfangen soll zu graben? Vielen Dank!cellForRowAtIndexPath wird aufgerufen, aber ohne Stacktrace
Antwort
Standardmäßig sehen Sie nur den Stack-Trace, die Debug-Symbole enthält. Sie werden hier also nicht viele Framework-Interna sehen.
alles, dort zu sehen ist ein kleiner Knopf an der Unterseite der Stack-Trace-Fenster von rechts dritter Position, die ohne Debug-Symbole auch Methoden ermöglichen:
(In Tatsächlich hängt das von Ihrer Xcode-Version ab, in älteren Versionen gibt es eine Art Slider, der mehr oder weniger Details im Stack-Trace anzeigt.
Ich habe diese Option im Debug Navigator markiert, siehe aktualisiert StackTrace. Immer noch kein Glück. numberOfRowInSection ist nicht einmal im Stacktrace – chlkdst
Sicher ist es nicht. 'numberOfRows: inSection' wird von der Tabellenansicht _before_' cellForRow: atIndexPath' aufgerufen, also sollte es nicht unbedingt im StackTrace sein. –
Yup ich bekomme es jetzt, es ist immer der Fall der 'numberOfRows: inSection' ist im StackTrace. Mein Hauptproblem ist, dass ich nicht weiß, wer den 'cellForRow: atIndexPath' auslöst. – chlkdst
Wie @AndreasOetjen erwähnt, ist dies ein normales Verhalten, da die Methode get von einer UIKit Framework-Klasse aufgerufen wird. Der Call-Stack in diesem Framework ist standardmäßig ausgeblendet und kann über die genannten Schaltflächen aktiviert werden.
- 1. Selector wird in numberOfRowsInSection aber nicht in cellForRowAtIndexPath aufgerufen
- 2. cellForRowAtIndexPath nicht von benutzerdefinierten Klasse aufgerufen wird
- 3. cellForRowAtIndexPath wird nicht nach reloadData aufgerufen
- 4. UITableView cellForRowAtIndexPath nie aufgerufen
- 5. UITableView cellForRowAtIndexPath wird in falscher Reihenfolge aufgerufen
- 6. tableView reloadData cellForRowAtIndexPath nicht aufgerufen
- 7. cellForRowAtIndexPath nicht innerhalb UITabBarController aufgerufen
- 8. Warum wird cellForRowAtIndexPath nicht ausgelöst, aber andere Methoden sind?
- 9. Objective-c UITableView separate Klasse cellForRowAtIndexPath wird nicht aufgerufen
- 10. Die Methode cellForRowAtIndexPath-Methode wurde nicht aufgerufen
- 11. cellForRowAtIndexPath nicht genannt aber numberOfRowsInSection genannt
- 12. cellForRowAtIndexPath wird aufgerufen, wenn auf die Tabellenzelle zum Bearbeiten geklickt wird
- 13. UWP: Random COMException ohne Stacktrace - unwiederholbar
- 14. UITableView cellForRowAtIndexPath mehr als einmal für jede Zeile aufgerufen
- 15. Java bekommen nur Ausnahmenamen ohne Stacktrace
- 16. Funktion aufgerufen wird, aber nicht die Ausführung
- 17. Mysterious spritekit Absturz nach emitterNode ohne Stacktrace
- 18. WCF-Dienst wird aufgerufen - ohne Referenz hinzugefügt
- 19. AngularJS Controller wird zweimal aufgerufen (ohne ui.router)
- 20. WCF FaultException ohne Senden von StackTrace
- 21. Request.getPart wird ohne multipart aufgerufen jsp
- 22. cellForRowAtIndexPath genannt nie in UITableViewController
- 23. Warum wird diese Methode ausgeführt, ohne dass sie aufgerufen wird?
- 24. Speicherleck in CellForRowAtIndexPath:
- 25. Warum didReceiveRemoteNotification: fetchCompletionHandler wird aufgerufen, aber normal didReceiveRemoteNotification ist nicht?
- 26. In welcher Situation wird Application_EndRequest aufgerufen, aber Application_BeginRequest wird nicht aufgerufen?
- 27. didEnterRegion wird nicht aufgerufen, aber didExitRegion wird in Ziel C aufgerufen
- 28. didSelectRowAtIndexPath wird nicht aufgerufen (Swift)
- 29. Redux & React: componentDidUpdate wird aufgerufen, aber Neuausgabe passiert nicht
- 30. cellForRowAtIndexPath Methode aufruft, nicht
Warum denkst du nicht, dass "numberOfSections" (oder meinst du "numberOfRowsInSection") nicht aufgerufen wird? – rmaddy
Ich habe einen Breakpoint in 'numberOfRowsInSection' gesetzt, aber er wurde nie – chlkdst
genannt. Sind Sie sicher, dass er die richtige Signatur hat? Aktualisieren Sie Ihre Frage mit dem entsprechenden Code. – rmaddy