Gemäß der Klassenreferenz akzeptiert der Beendigungshandler für captureStillImageAsynchronouslyFromConnection ein NSError-Objekt, ist jedoch nicht optional.Konflikt zwischen Funktionsdeklaration und Parameterbeschreibung für captureStillImageAsynchronouslyFromConnection?
Funktion Deklaration:
func captureStillImageAsynchronouslyFromConnection(connection: AVCaptureConnection!, completionHandler handler: ((CMSampleBuffer!, NSError!) -> Void)!)
Doch in der Beschreibung für die Parameter, heißt es null in den Abschluss-Handler anstelle des NSError Objekts zurückgegeben werden, wenn die Anforderung erfüllt wurde.
Parameter Beschreibung:
If the request could not be completed, an NSError object that describes the problem; otherwise nil.
Die Beschreibung schlägt vor, die Erklärung eine optionale für das NSError Objekt enthalten soll, oder nicht? Sind die Parameter Beschreibung und Funktionsdeklaration nicht widersprüchlich?
so ist der Grund für die Verwendung einer impliziten Option in der Deklaration, im Gegensatz zu einer normalen optional, dass Sie nicht gezwungen sind zu verwenden! während der Funktion selbst? Vielen Dank! – Crashalot
Das ist ein guter Grund, aber seien Sie vorsichtig, nicht überfällig. Es gibt einige gute Anwendungsfälle, aber Sicherheit gewinnt. Bitte überprüfe @ drewags Beitrag unter diesem Link: http://stackoverflow.com/questions/24006975/why-create-implicitly-unwrapped-optionals um mehr über die vielen Möglichkeiten zu erfahren, wie man es benutzen kann, während man sicher spielt. – Laurent
yup, verstanden. Ich versuche nur zu verstehen, warum Apple ein implizites, nicht gefaltetes, optionales, im Gegensatz zu einem normalen, optionales verwendet. Ist das der Grund? – Crashalot