Как я могу получить доступ к одному свойству Struct, которое реализует два протокола? - PullRequest
0 голосов
/ 13 июня 2018

Я только изучаю Swift 4, и у меня возникают некоторые проблемы при попытке получить доступ к свойству структуры, которая должна реализовывать 2 протокола

вот моя структура

struct FigureA {
    static func load() -> Model {
        return Model.make(
            name: "FigureName", 
            status: "Painted", 
            image: UIImage(named: "FigureA"), 
            description: "Good figure")
    }
}

здесь протокол 1

protocol ListModel: class {
    var name: String { get }
    var status: String { get }
    var image: UIImage? { get }
}

здесь протокол 2

protocol DetailModel: ListModel {
    var categoryName: String { get }
    var modelDescription: String? { get }
}

И я хочу получить доступ к описанию Struct, но я вообще не знаю как.

Может ли кто-нибудь дать мне немного света.

1 Ответ

0 голосов
/ 13 июня 2018

Вот хорошее начало для вас:

protocol BaseProtocol {
    var id: Int { get set }
}

protocol PersonProtocol: BaseProtocol {
    var firstName: String { get set }
    var lastName: String { get set }
    var name: String { get }
}

struct Person: PersonProtocol {
    var id: Int
    var firstName: String
    var lastName: String
    var name: String { return firstName + " " + lastName }
}

//≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠≠

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        //Create Struct Instance & Print properties.
        let person = Person(id: 1001, firstName: "Manish", lastName: "Rathi")
        print(person.id)
        print(person.firstName)
        print(person.lastName)
        print(person.name)
    }
}

# HappyCoding ?

...