2016-05-24 5 views
0

Я действительно новичок в Swift и пытаюсь понять, как работать с расширениями протокола. Так вот мой протокол:Swift: Использование протоколов для создания экземпляра частного класса

public protocol User: class { 
    var name : String {get} 
} 
private class MyUser: User { 
    var name : String 

    init(name: String) { 
     self.name = name 
    } 
} 
extension User where Self:User { 
    func createUser(name: String) -> User { 
     return MyUser(name) 
    } 
} 

Как вызвать эту функцию createUser из совершенно другого класса/протокола, где я хочу, чтобы создать экземпляр пользователя?

ответ

-1

Вы можете переделать функцию в любой класс, который нужен для

func createUser(name: String) -> User { 
     return MyUser(name) 
} 

затем сказать

let newUser = createUser("WhateverName") 

или вы могли бы сделать:

let newUser = User().createUser("WhateverName") 

 Смежные вопросы

  • Нет связанных вопросов^_^