2016-05-27 2 views
3

私はDataクラスで私のUsersクラスから変数を呼び出すようにしようとしている上で使用することはできませんが、私はタイプに使用することはできません。このエラースウィフト:インスタンスのメンバは、タイプ

インスタンスメンバ「ユーザー」を投げています'データ'

Dataクラスコード:

import Foundation 

class Data { 

    static let sharedInstance = Data() 

    let user = Users() 
    var id = (user.userId).string 

    //Login.swift 
    static let quarterlyEndpoint: String = "http://anyapi/api/users/\(id)/quarterly/tasks" 

// for prevent from creating this class object 
private init() { } 

} 

Usersクラスコード:

var userId: Int { 

    guard let _userId = getId() else { 
     return 0 
    } 

    return _userId 
} 

UPDATE

私は、関数を呼び出すことができますが、私は私のweeklyEndを印刷するとき、私はhttp://anyapi/api/users/(Function)/quarterly/tasks代わりのhttp://anyapi/api/users/3/quarterly/tasks

let user = Users() 

func getId() -> String 
{ 
    let id = String(user.userId) 
    return id 
} 

static let weeklyEndpoint: String = "http://anyapi/api/users/\(getId)/quarterly/tasks" 

UPDATE 2

import Foundation 

class Data { 

static let sharedInstance = Data() 

let user = Users() 
let id:String? 
let weeklyEndpoint: String? 

// for prevent from creating this class object 
private init() { 
    id = String((user.userId)) 
    //Login.swift 
    weeklyEndpoint = "http://anyapi/api/users/\(id)/quarterly/tasks" 
} 

} 
になるだろう

weeklyEndPointDataクラスの外から呼び出すのに問題があります。 Data.weeklyEndPointを試しましたが、動作しません。

答えて

1

このようなDataクラス内でメソッドを作成してみてください。私は、文字列からそれを呼び出すにはどうすればよい

class Data { 

    static let sharedInstance = Data() 
    let id:String? 
    let quarterlyEndpoint: String? 

    let user = Users() 
    private init() 
    { 
    id = String((user.userId)) 
    quarterlyEndpoint = "http://anyapi/api/users/\(id)/quarterly/tasks" 

    } 




} 
+0

func getusrid()-> String { var id = (user.userId).string return id ; } 

あなたは、任意の方法の外に

EDITをインスタンス変数から値を取得することはできませんか?私は '\(getusrid())'を追加しようとしましたが、 "タイプ 'Data'にインスタンスメンバー 'getusrid'を使用するようになりました;代わりに 'データ'タイプの値を使用するのですか?エラー – noobdev

+0

ああ私はあなたのプライベートinit(){id =(user.userId).string quarterlyEndpoint:String = "http:// anyapi/api/users/\ id)/ quarterly/tasks " } –

+0

とidとquarterlyEndpoint変数を先に宣言してください –

関連する問題