Swift var=str创建';appendingPathComponent'的用法不明确;错误
我正在为我的班级开发一个分贝测量应用程序,我被一个不断出现的错误难住了:“appendingPathComponent的使用不明确”。以下是出现问题的地方: //设置音频文件的URLSwift var=str创建';appendingPathComponent'的用法不明确;错误,swift,Swift,我正在为我的班级开发一个分贝测量应用程序,我被一个不断出现的错误难住了:“appendingPathComponent的使用不明确”。以下是出现问题的地方: //设置音频文件的URL var documents: AnyObject = NSSearchPathForDirectoriesInDomains( FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userD
var documents: AnyObject = NSSearchPathForDirectoriesInDomains( FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] as AnyObject
var str = documents.appendingPathComponent("recordTest.caf")
var url = NSURL.fileURL(withPath: str as String)
错误发生在这里:
var str = documents.appendingPathComponent("recordTest.caf")
我似乎无法解决这个问题
救命啊,,
保罗你为什么要将
文档
转换为任何对象
?把它扔掉
但这又带来了一个新问题,因为附加路径组件
是NSString
、NSURL
或URL
的一种方法。但是文档
是一个字符串
为什么要使用NSURL
而不是URL
由于您的目标是获得URL
,因此请使用FileManager
的更直接方法:
let docURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let url = docURL.appendingPathComponent("recordTest.caf")
尽管您(应该)确切地知道
String
是返回的,但为什么要注释/转换AnyObject
?不要注释编译器可以推断的类型。试试看!这很糟糕practice@OlegGordiichuk是的,通常是这样。你当然可以更新这个代码来使用<代码> do/catch > /Cord>,或者考虑用户的文档文件夹将永远存在,这不会失败。@ OLGGRIDIICHUK <代码>尝试!<如果保证尝试不会失败(如本例中),则代码>是一种良好的做法。那么错误是“var”还是上面的AnyObject行?在XCODE 8中,这是唯一阻止我创建构建的错误。绝对是AnyObject。