У меня есть некоторая функция для камеры, использующей 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 или нет?
Примечание. Эта цель развертывания "другого проекта" - iOS10 & swift 3 и используя func capture
для didFinishCaptureForResolvedSettings
и не могу использовать func photoOutput
Мой автономный проект выполняется с использованием Swift 4, а целью развертывания является iOS 11.3