ho una semplice classe di sottorapida setter causando EXC_BAD_ACCESS
import Foundation
public class UsefulClass: NSObject{
var test:NSNumber{
get{return self.test}
set{
println(newValue)
self.test = newValue
}
}
override init() {
super.init()
self.test = 5;
}
}
e sto inizializzazione qui
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var testClass = UsefulClass()
}
}
Ma si traduce in Xcode stampare 200 5s e poi schiantarsi a causa di codice EXC_BAD_ACCESS = 2. Perché succede?
Vedo, quindi non c'è modo di sovrascrivere il setter in Swift per fare qualcosa come set {self.test = newValue - 7} senza un'altra proprietà memorizzata? – user3211122
Oh nvm, http://stackoverflow.com/questions/24006234/what-is-the-purpose-of-willset-and-didset-in-swift è stato davvero utile. Quindi set/get sono solo metodi e didSet/willSet sono legati a ivars. – user3211122