【发布时间】:2018-11-15 14:30:22
【问题描述】:
我有一些使用 AVKit 和 AVCapturePhotoCaptureDelegate 的相机功能。
import UIKit
import AVKit
class CaptureImageClass: NSObject, AVCapturePhotoCaptureDelegate {
var photoData: Data?
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
if let error = error {
print("Error capturing photo: \(error)")
} else {
photoData = photo.fileDataRepresentation() //Cannot assign value of type 'Data?' to type 'Data?'
}
}
func capture(_ output: AVCapturePhotoOutput, didFinishCaptureForResolvedSettings resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
guard let photoData = photoData else {
print("No photo data resource")
return
}
let capturedImage = UIImage.init(data: photoData , scale: 1.0) //Cannot convert value of type 'Data' to expected argument type 'Data'
if let image = capturedImage {
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}
}
}
当我制作独立项目时,此代码编译没有问题。但是当我尝试申请另一个项目时,它会出现一些错误,例如Cannot assign value of type 'Data?' to type 'Data?' 和Cannot convert value of type 'Data' to expected argument type 'Data'
这个问题是不是 Swift 版本不同造成的?
注意:
这个“另一个项目”部署目标是 iOS 10 和 swift 3 并使用 func capture 为 didFinishCaptureForResolvedSettings 而不能使用 func photoOutput
我的独立项目使用 Swift 4 运行,部署目标是 iOS 11.3
【问题讨论】:
-
您是否在某处定义了另一个名为
Data的类型?
标签: ios swift xcode camera ios-camera