【问题标题】:Extension: error use of undeclared type扩展:错误使用未声明的类型
【发布时间】:2017-10-02 16:11:19
【问题描述】:

我是 swift 新手,我想创建 Dog 类的扩展:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    public class Dog {
        var name = "Timmy"
    }
}

extension Dog {
    func description() -> String {
        return "A dog named \(self.name)"
    }
}

我认为扩展程序在底部,有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: swift


    【解决方案1】:

    您的 Dog 类“隐藏”在 ViewController 类中。在顶层声明它或将其称为ViewController.Dog

    【讨论】:

    【解决方案2】:

    问题是您在另一个类 (ViewController) 中声明了一个类 (Dog) - 首先是 不要 - 所以这个类不是可见于对方之外。此外,您不必必须在文件的最后添加扩展名。

    解决方案

    移动班级:

    class ViewController: UIViewController { ... }
    
    class Dog {}
    
    extension Dog {}
    

    解决方案 #2

    改变你对班级的称呼:

    extension ViewController.Dog {}
    

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      相关资源
      最近更新 更多