2017-02-18 4 views
0

Ich lerne und ich konnte es selbst bis jetzt nicht herausfinden.Wert des Typs AnyObject hat kein Mitglied Generator

Mein Code ist:

func takeScreenshot(completionHandler handler: ((NSData!) -> Void)!) 
    { 
     // find out video connection 
     var videoConnection: AVCaptureConnection? 
     for conn in stillImageOutput!.connections { 
      for port in conn.inputPorts { 
       if port.mediaType == AVMediaTypeVideo { 
        videoConnection = conn as? AVCaptureConnection 
        break 
       } 
      } 
      if videoConnection != nil { 
       break 
      } 
     } 
     stillImageOutput!.captureStillImageAsynchronouslyFromConnection(videoConnection) { (sampleBuffer: CMSampleBuffer!, err: NSError!) in 
      let data = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer) 
      handler(data) 
     } 
    } 

In Schleife "für den Port in conn.inputPorts" Ich habe den Fehler.

Danke für die Hilfe!

+0

Typ 'AnyObject' hat kein Mitglied was ?? Normalerweise gibt es etwas, um diese Aussage zu beenden, um zu klären, was Sie manipulieren wollen, das nicht existiert. – Pierce

+0

Vielleicht meinen Sie, 'connections.inputPorts' zu tun? ... keine Ahnung, nicht genug Info. –

+0

Wert des Typs AnyObject hat kein Mitglied in 'Generator' –

Antwort

0

Sie haben tatsächlich das gleiche Problem an zwei Stellen. Zuerst ist die connections Eigenschaft, die eine Eigenschaft der AVCaptureOutput Klasse zu sein scheint. connections wird als NSArray deklariert.

Das zweite, ähnliche Problem ist mit Ihrer Verwendung von inputPorts. inputPorts scheint eine Eigenschaft der Klasse AVCaptureConnection zu sein. inputPorts wird als NSArray deklariert.

Das Problem, das Sie haben, ist, dass conn und port Ende oben mit einer Art von AnyObject weil Swift haben keine Ahnung, welche Art von Objekten in den beiden Anordnungen sind.

Ihr Versuch, auf eine Eigenschaft auf einer Variablen vom Typ AnyObject zuzugreifen, führt zu dem Fehler.

Sie haben zwei Möglichkeiten.

  1. Guss der connections Array an eine Anordnung von Swift AVCaptureSessioninputPorts und zu einer Reihe von Swift AVCaptureInputPort.
  2. Besetzung conn zu AVCaptureSession und port zu AVCaptureInputPort.
+0

danke! es funktionierte! –

+0

Froh, zu helfen. Bitte vergiss nicht, Antworten zu akzeptieren, die deine Fragen lösen. So können die Leute wissen, dass Ihre Frage gelöst wurde. – rmaddy

Verwandte Themen