2016-05-24 8 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

あなたは、あなたが行うことができ

let newUser = createUser("WhateverName") 

かを言うあなたは

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

のためにそれを必要とするものは何でも、クラス内の関数を作り直すことができます:

let newUser = User().createUser("WhateverName") 
関連する問題