加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Swift Playground中的lldb_expr是什么?

发布时间:2020-12-14 17:34:00 所属栏目:百科 来源:网络整理
导读:我试图向某人演示基本继承以及如何在覆盖init时默认调用超级初始化器: class Animal{ init(){ println("Animal has been initialized!") }}class Dog:Animal{ var feet:Int = 4 override init(){ println("Dog has been initialized!") }}var d = Dog() 为
我试图向某人演示基本继承以及如何在覆盖init时默认调用超级初始化器:

class Animal{
    init(){
        println("Animal has been initialized!")
    }
}

class Dog:Animal{
    var feet:Int = 4

    override init(){
        println("Dog has been initialized!")
    }
}

var d = Dog()

为什么我在最后一行得到{__lldb_expr_380.Animal feet 4}?当我在动物类下创建一个实例变量时它就消失了.

解决方法

我不是100%关于这一点,但对我来说,这似乎是理智和合乎逻辑的.

您的Animal类为空,因此编译器需要一种表达/打印类/它的值的方法.所以它的作用是打印__lldb_expr_380.Animal,因为编译器不知道还能做什么.如果添加属性(例如leg),结果将变为:{{legs 2} feet 4}.

所以,根据我的理解,只要你有这个空的超类,编译器就会“混淆”,发生的错误是它只会打印出__llb_expr_:some_number:.ClassName而不是像{}这样的东西.

参考:http://discuss.codewithchris.com/t/episode-7-classes-error—lldb-expr-/150

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读