Benhızlı ayarlayıcı neden 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;
}
}
altında basit bir sınıf var ve burada
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var testClass = UsefulClass()
}
}
başlatılıyor ediyorum Ama nedeniyle EXC_BAD_ACCESS koduna çökmesini sonra dışarı baskı 200 5s ve xcode sonuçlanır = 2. Neden bu oluyor?
Gördüğünüz gibi, başka bir depolanmış özellik olmadan set {self.test = newValue - 7} gibi bir şey yapmak için Swift'deki ayarlayıcıyı geçersiz kılma yolu yok mu? – user3211122
Oh nvm, http://stackoverflow.com/questions/24006234/what-is-the-purpose-of-willset-and-didset-in-swift gerçekten yardımcı oldu. Yani set/get sadece yöntemler ve didSet/willSet ivarlara bağlanır. – user3211122