1
2
撇开代码“气味”这一事实不谈(你从一个超类中引用一个子类,你将一个属性添加到一个子类中,然后添加到扩展中的基类中,而不是将它直接添加到基类中-在一个超类中重写),所发生的是,Swift和许多其他编程语言一样,是静态调度的,这意味着它将急切地将方法调用(这种情况下的getter)解析为固定的内存地址。 Overriding methods in Swift extensions , http://blog.flaviocaetano.com/post/this-is-how-to-override-extension-methods/ . 这就是为什么你得到无限递归。 解决方案很简单,在基类中声明属性,在那里返回nil,在子类中返回实际属性。 |
2
0
注意:我试过了
但那没用。 |
Martin sku · 在目标C中打印时间 2 年前 |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
James Chan · 如何使用锁定/解锁? 6 年前 |
Josh F. · NSBundle mainBundle返回零 6 年前 |