verursacht Wenn ich [weak self]
auf einem Verschluss und Referenz self
als self?
innerhalb UIView.animateWithDuration
die App zum Absturz zu erklären:Verweise auf [schwaches Selbst] als Selbst? innerhalb animateWithDuration Absturz
someFunc() { [weak self] (success) -> Void in
UIView.animateWithDuration(0.25) {
self?.someView.alpha = 1;
}
}
mit einem message sent to deallocated instance
aber wenn ich vor unwrap selbst optional Zeit es doesn 't
Warum ist das, ich würde denken, dass es egal ist, auf welche Weise ich die schwache se referenziere lf da es "nur" optional self?
korrekt auspacken soll. Für Kontext wird dies in einem UICellView
getan, die freigegeben wird, wenn ich die UICollectionViewController
EDIT verlassen: einen Fehler mit Apfel abgelegt: # 23492648
Das ist eigentlich wirklich komisch, riecht nach einem Fehler für mich. Was ist los mit dem unnötigen ';'? Rufen Sie eine Funktion an oder ist das eine Eigenschaft? – Kametrixom
Danke, dass ich das herausgebracht habe, ich habe es für Klarheit geklärt, anstatt 'doSomething'. Ich habe für die Verwendung von ';' in unserer Codebasis gedrängt, weil es das Ende von Anweisungen eindeutig macht. Es gibt Situationen, in denen Sie eine Anweisung haben könnten, die eine Zeile umschließt, und das ist nicht sehr offensichtlich :) – Shizam
Dies ist ein guter Fehlerbericht und Sie sollten ihn an Apple melden. Aber es ist auch wahr, dass du immer den schwach-starken Tanz machen solltest, wenn du Dinge schwach in eine anonyme Funktion überträgst, wie du es im zweiten Beispiel tust ("wenn du dich selbst schwächen lässt"), also tu es einfach und gehe weiter. – matt