Hãy nói rằng tôi có lớp sau trong Swift (trong đó có vấn đề rõ ràng)phương pháp Gọi từ Swift initializer
class MyClass {
let myProperty: String
init() {
super.init()
self.setupMyProperty()
}
func setupMyProperty() {
myProperty = "x"
}
}
Đây là quá đơn giản nhưng tôi về cơ bản cố gắng để ủy thác việc khởi tạo myProperty
vào phương pháp setupMyProperty()
. Đó là một mẫu mà tôi thường sử dụng để chia nhỏ các phần khác nhau của việc thiết lập một lớp. Nhưng tất nhiên, tôi không thể gọi self
cho đến khi trình khởi chạy siêu chạy, và tôi không thể chạy trình khởi chạy siêu cho đến khi tất cả các thuộc tính đã được thiết lập, vì vậy tôi đang nắm bắt 22. Trên đầu trang của kể từ setupMyProperty()
không được coi là bộ khởi tạo, nó sẽ không thể gán myProperty
.
Có ai có thể cho tôi biết cách triển khai mẫu này trong Swift không?
Tôi không biết điều này có phù hợp với bạn hay không nhưng bạn có thể gán giá trị khi khai báo thuộc tính. 'cho phép myProperty: String =" x "' –
Vâng, tôi sử dụng nó ở nơi có ý nghĩa.Nhưng trong trường hợp những thứ này được khởi tạo dựa trên các tham số cho bộ khởi tạo, thì bộ khởi tạo trở nên lộn xộn. Tôi đoán đó là dấu hiệu lớp của tôi có quá nhiều thuộc tính. – mprivat
Kiểm tra phiên WWDC 403: Trung cấp Swift, khoảng 29 phút trong bao gồm khởi tạo lớp. – DogCoffee