2017-06-20 8 views
0

私はこのエラーになっている:「プロパティ初期化子内インスタンスメンバ 『サーバー』を使用することはできません。自己の利用可能な」前に実行プロパティの初期化子」私のこのコード行ではインスタンスメンバプロパティ初期化子内の「サーバー」を使用することはできません

編集

import UIKit 
import ChinoOSXLibrary 

class LoginCL: UIViewController { 


    @IBOutlet weak var emailField: UITextField! 

    @IBOutlet weak var passField: UITextField! 

    var loggedUser: LoggedUser! 
    var customerId = "xxx" 
    var customerKey = "xxx" 
    var server = "https://api.test.chino.io/v1" 

    var chino = ChinoAPI.init(hostUrl: server, customerId: customerId, customerKey: customerKey) 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

どうすれば解決できますか?この行にエラーがあります

var chino = ChinoAPI.init(hostUrl: server, customerId: customerId, customerKey: customerKey) 
+0

また、あなただけのようinitに値を移動することができます。エラーを出す行だけでなく、コード全体を投稿してください。 –

+0

それを行う@MarcoPace – bero

答えて

1

初期化までView Controllerとプロパティのインスタンスを使用することはできません。 viewDidLoadにごChinoAPI初期化を移動:

var chino: ChinoAPI! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    chino = ChinoAPI(hostUrl: server, customerId: customerId, customerKey: customerKey) 
} 

別のオプションは、ChinoAPIにあなたのビューコントローラからすべてのハードコードされた値を移動することですが、私はそれがうまくあなたのロジックをフィットするかはわかりません。それはあなたがすべてのプロパティが正しく初期化される前に `self`を使用しようとしたことを意味し

ChinoAPI.init(hostUrl: "https://api.test.chino.io/v1", customerId: "xxx, customerKey: "xxx") 
+0

ありがとう@livenplay – bero

0

セルフビューコントローラ初期化メソッドを使用する必要があります。 viewDidLoadでvar chinoを初期化するか、init view controller initメソッドの前にinitを実行する必要がある場合はhardcodet文字列を使用する必要があります。

+0

私はinitビューのコントローラメソッドの前にそれを行う必要があります、あなたは私の例を行うことはできますか? – bero

関連する問題