2016-05-27 34 views
0

静的変数textViewは、Holder構造体に含まれています。
しかし、ユーザーがこの関数を呼び出すたびに "Holder.textView.fieldEditor = true"を設定する必要があるという問題が発生しました。
このアクションを1回だけ実行させるにはどうすればよいですか?関数内の静的変数にプロパティを設定する方法

func myTextView() -> NSTextView { 

    struct Holder { 
     static var textView = NSTextView() 
    } 

    Holder.textView.fieldEditor = true 
    return Holder.textView 
} 

答えて

0

この

struct Holder { 
    static var textView = NSTextView() 
} 

は、あなたの関数のスコープ外で定義されなければなりません。それ以外の場合は、myTextView()を呼び出すたびに、新しいHolder構造体が定義され、インスタンス化されます。

これはstatic varをあなたの目的には役に立たなくします。

一方、関数外でHolderを定義した場合、値は複数の呼び出しの間に保持されます。

enter image description here

を見て
関連する問題