“计算属性必须具有显式类型”错误:如何在 Swift 2.x 中列出文件? [复制]
Posted
技术标签:
【中文标题】“计算属性必须具有显式类型”错误:如何在 Swift 2.x 中列出文件? [复制]【英文标题】:"Computed property must have an explicit type" error: how to list files in Swift 2.x? [duplicate] 【发布时间】:2016-01-10 02:41:51 【问题描述】:以下代码生成Computed property must have an explicit type error.
使用新的try/catch
Swift 语法列出文件的正确方法是什么?
do
let files = try NSFileManager.defaultManager().contentsOfDirectoryAtPath(docsPath as String) as! [String]
print("Found \(files.count) file(s) in \(docsPath):")
catch
print("Error with listing files: \(error)")
【问题讨论】:
当问题涉及在 OPs 代码中查找特定错误时,它真的是重复的吗? @dfri 同意它不是重复的,因为具体错误和您的具体解决方案。 @dfri 在这种情况下应该作为错字关闭 @LeoDabus 这个 在第一次阅读this meta post 之后,我同意。由于它已为 OP 解决,我认为没有理由保留它。我相信,过于本地化,无法对其他人使用。 当我忘记将if
关键字放在开头时,我也遇到了这个错误。
【参考方案1】:
您在不需要的 try 语句之后(在 ... as! [String]
之后)添加了一个额外的大括号 。这个额外的大括号让 Swift 相信你正在使用计算属性。
删除括号,您的 do-try-catch
块应该可以工作:
var docsPath : String = "notavalidpath"
do
let files = try NSFileManager.defaultManager().contentsOfDirectoryAtPath(docsPath as String) as! [String]
print("Found \(files.count) file(s) in \(docsPath):")
catch
print("Error with listing files: \(error)")
【讨论】:
以上是关于“计算属性必须具有显式类型”错误:如何在 Swift 2.x 中列出文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章