2009-08-19 7 views

Antwort

3

Diese Warnung ist vorhanden, so dass Sie removeFromSuperview nicht innerhalb einer drawRect: Methode aufrufen. Die Cocoa-Laufzeitumgebung nutzt die Ansichtshierarchie während Zeichnungsvorgängen ausgiebig. Wenn Sie also eine Ansicht aus der Superview entfernen, während Sie die Zeichnung zeichnen, kann das wirklich Probleme bereiten.

Rufen Sie removeFromSuperview zu jeder anderen Zeit ist völlig in Ordnung, und es ist nicht notwendig, die Ansicht zu verbergen, bevor Sie es entfernen.

+0

macht Sinn. Vielleicht hätten sie "während des Zeichnens" anstatt "während des Anzeigens" schreiben sollen ;-) –

+0

Sie haben wahrscheinlich Recht :) Ich habe das "Dokumenten-Feedback" -Formular für die 'NSView'-Dokumentation ausgefüllt, um Apple über die Verwirrung zu informieren. Alle Entwickler-Dokumente von Apple haben Feedback-Links ganz unten auf der Seite. Wenn Sie auf so etwas stoßen, sind die Chancen gut, dass andere Leute es auch verwirrend finden, daher ist es sehr empfehlenswert, das Feedback-Formular auszufüllen. –

+0

Es kommt wahrscheinlich von den Namen der display/displayLayer: -Methode. –

1

Wow. Ich habe noch nie diese Note in der Dokumentation gesehen und ich habe nur ein wenig Angst über einige Code, den ich geschrieben habe :)

http://www.iphonedevsdk.com/forum/iphone-sdk-development/9729-curious-thing-removefromsuperview-doc.html

Der Konsens ist, dass es sich um eine schlecht formulierte Satz ist, und Sie sollten nicht aufrufen Diese Methode während des Prozesses des Anzeigens/Zeichnens von etwas. Aber wenn es gerade angezeigt wird, ist es in Ordnung.

Ich würde wirklich empfehlen, Apple um eine Anleitung zu diesem Thema zu bitten.

+0

lol ich habe gerade so Angst bekommen – Daniel

Verwandte Themen