swift setter causing exc_bad_access

后端 未结 3 1770
青春惊慌失措
青春惊慌失措 2020-12-07 01:49

I have a simple class below

import Foundation

public class UsefulClass: NSObject{
    var test:NSNumber{
        get{return self.test}
        set{
                


        
3条回答
  •  醉酒成梦
    2020-12-07 02:21

    It's an infinite loop; your setter is recursively calling itself.

    var test: NSNumber {
        set {
            test = newValue
        }
    }
    

    This compiles fine, and an Objective-C programmer might expect no loop due to instead setting a "backing ivar" such as _test rather than re-calling the setter method.

    But property-backing instance variable _ivars do not exist in Swift for computed properties unless you create them yourself.

提交回复
热议问题