Tôi đang tìm cách thêm trình khởi tạo mặc định vào giao thức qua tiện ích mở rộng giao thức.Vấn đề tham chiếu giao thức Swift tự mở rộng với init
giao thức của tôi là:
protocol TestProtocol {
var myVar : Double { get set }
init(value: Double)
init(existingStruct : TestProtocol)
}
Tôi đã thực hiện một cấu trúc sử dụng giao thức này như:
struct TestStruct : TestProtocol {
var myVar : Double
init(value : Double) {
myVar = value
}
init (existingStruct : TestProtocol) {
myVar = existingStruct.myVar
}
}
Tuy nhiên nếu tôi cố gắng qua mở rộng để thực hiện một khởi tạo mặc định cho giao thức này tôi gặp vấn đề về bản thân:
extension TestProtocol {
init(value : Double) {
myVar = value
}
init(existingStruct : TestProtocol) {
myVar = existingStruct.myVar
}
}
Whe tái cả hai dòng phân cấp lỗi Biến 'tự' thông qua tham khảo trước khi được khởi tạo
Có cách nào để làm cho công việc này - hoặc am i hạn chế việc sử dụng các lớp học?
Đó có phải là xcode với chủ đề monokai không? Tôi muốn nó! <3 – Kutyel
https://github.com/b0ti/xcode-monokai-revisited – Jeef
Ups, làm thế nào bạn có thể đảm bảo rằng loại bê tông áp dụng 'TestProtocol' sẽ được khởi tạo hoàn toàn bởi' init' trong phần mở rộng giao thức? đặc biệt đối với các loại giá trị (ví dụ: cấu trúc hoặc enums). –