AnyObject类型的值没有成员生成器

问题描述:

我正在学习,并且我自己目前无法弄清楚。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'中没有成员 –

你在两个地方实际上有同样的问题。首先是connections财产,它似乎是AVCaptureOutput类的财产。 connections被宣告为NSArray

第二,类似的问题与您使用inputPortsinputPorts似乎是AVCaptureConnection类的一个属性。 inputPorts被宣告为NSArray

您遇到的问题是connportAnyObject类型结尾,因为Swift不知道两个数组中的对象是什么类型。

因此,您尝试访问类型为AnyObject的变量的属性会导致错误。

您有两种选择。

  1. 角色的connections阵列的AVCaptureSessioninputPorts一个夫特阵列的AVCaptureInputPort一个夫特阵列。
  2. 铸造connAVCaptureSessionportAVCaptureInputPort
+0

谢谢!有效! –

+0

很高兴帮助。请不要忘记接受解决您的问题的答案。这让人们知道你的问题已经解决了。 – rmaddy