Swift 扩展名:使用未声明的类型时出错
我是swift新手,我想创建Dog类的扩展:Swift 扩展名:使用未声明的类型时出错,swift,Swift,我是swift新手,我想创建Dog类的扩展: class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } public class Dog { var name = "Timmy" } } extension Dog { func description() -> String {
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)"
}
}
我认为扩展是最底层的,有人能帮我吗?你的狗类“隐藏”在你的ViewController类中。在顶层声明它或将其称为
ViewController.Dog
问题是您在另一个类(ViewController
)中声明了一个类(Dog
)-这首先是一个禁忌-因此该类在另一个类之外不可见。此外,您不必在文件的末尾添加扩展名
解决方案
移动类:
class ViewController: UIViewController { ... }
class Dog {}
extension Dog {}
extension ViewController.Dog {}
解决方案#2
更改引用该类的方式:
class ViewController: UIViewController { ... }
class Dog {}
extension Dog {}
extension ViewController.Dog {}
如果你愿意,看看我的书: