“计算属性必须具有显式类型”错误:如何在 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 中列出文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

swift 在swif打开网址

swif解决手势冲突

Swif基础语法01

swif tableview全选

swif-throws异常抛出

Swif语法基础 要点归纳