2017-02-18 19 views
0

私は学習しており、これまで自分でそれを理解できませんでした。タイプAnyObjectの値にメンバーがありませんジェネレータ

私のコードは次のとおりです。ループでは

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) 
     } 
    } 

「conn.inputPortsに、ポートの」私はエラーを取得します。

ありがとうございました!

+0

タイプ 'AnyObject'にはメンバーがありません??通常は、その文を終了して、存在しないものを操作しようとしていることを明確にすることがあります。 – Pierce

+0

おそらく 'connections.inputPorts'を行うことを意味するのでしょうか? –

+0

タイプAnyObjectの値は 'Generator'にメンバーがありません –

答えて

0

実際には、2か所で同じ問題が発生しています。まず、クラスのプロパティであると思われるconnectionsプロパティがあります。 connectionsNSArrayと宣言されています。

2番目の同様の問題は、inputPortsの使用にあります。 inputPortsは、AVCaptureConnectionクラスのプロパティのようです。 inputPortsNSArrayと宣言されています。

connportのタイプはAnyObjectとなります。なぜなら、Swiftは2つの配列にどのような種類のオブジェクトがあるかわからないからです。

したがって、タイプAnyObjectの変数でプロパティにアクセスしようとすると、エラーが発生します。

2つのオプションがあります。

  1. キャストAVCaptureInputPortのスイフトアレイにAVCaptureSessioninputPortsのスウィフトアレイへconnectionsアレイ。
  2. キャストconn~AVCaptureSessionおよびport~AVCaptureInputPort
+0

ありがとう!出来た! –

+0

喜んで助けてください。あなたの質問を解決する答えを受け入れることを忘れないでください。これはあなたの質問が解決されたことを人々に知らせる。 – rmaddy

関連する問題