У меня есть следующий метод, когда я хотел бы вернуть movieDestinationUrl
, если SessionStatus завершен, однако я продолжаю получать эту ошибку Unexpected non-void return value in void function
. Что я делаю не так?Возвращаемое значение внутри асинхронного завершенияHandler
func createVideo() -> NSURL {
// create new file to receive data
let docsDir: AnyObject = documentsPath
let movieFilePath = docsDir.stringByAppendingPathComponent("result.mov")
let movieDestinationUrl = NSURL(fileURLWithPath: movieFilePath)
_ = try? NSFileManager().removeItemAtURL(movieDestinationUrl)
// use AVAssetExportSession to export video
let assetExport = AVAssetExportSession(asset: composition, presetName:AVAssetExportPresetHighestQuality)
assetExport!.outputFileType = AVFileTypeQuickTimeMovie
assetExport!.outputURL = movieDestinationUrl
assetExport?.videoComposition = layercomposition
assetExport!.exportAsynchronouslyWithCompletionHandler({
switch assetExport!.status{
case AVAssetExportSessionStatus.Failed:
print("failed \(assetExport!.error)")
case AVAssetExportSessionStatus.Cancelled:
print("cancelled \(assetExport!.error)")
default:
print("Movie complete")
// save to photoalbum
return movieDestinationUrl
}
})
}
Как это могло бы выглядеть? –
Посмотрите на документы для 'NSNotificationCenter'. Если после этого это не ясно, сообщите мне, какая часть вас смущает. –