IOSでプロパティアウトレットと変数が必要なのはなぜですか? -- iphone フィールド と ios フィールド と objective-c フィールド と automatic-ref-counting フィールド 関連 問題

Why we need property outlet and variable in iOS?












3
vote

問題

日本語

通常は、他のクラスによるアクセスがある場合にのみ「プロパティ」のアウトレットと変数を使用しています。それ以外の場合は、インターフェイスブロック内で宣言されています。しかし、私は一部のことを見ましたが、「プロパティ」のアウトレットと変数を作成するのを見ましたが、他のクラスではこれらにアクセスしません。それで、私たちが別のクラスからいくつかのアウトレットや変数にアクセスしないのであれば、 'プロパティ'のアウトレットと変数が必要なのですか?

英語

Normally I'm use 'property' outlets and variables only if it's access by another class. Otherwise it's declare within interface block. But I saw some are create 'property' outlet and variables but they are not access these in another class. So any one can explain, if we not access some outlet or variable from another class why we need 'property' outlets and variables?

</div
           

回答リスト

2
 
vote
vote
ベストアンサー
 

他のクラスからコンセントにアクセスする必要がない場合は、プロパティを作成する必要はありません。 <コード> @implementation :

でインスタンス変数を作成できます。 <事前> <コード> @implementation ViewController { IBOutlet UIView *someView; } ...

プレーンインスタンス変数を使用していない人もいて、プライベートデータの場合でも常にプロパティを使用することを好みます。 ARCを使用していない場合は、オブジェクトを保持して解放することができるため、Rawインスタンス変数の代わりにプロパティを使用することが特に便利です。 ARCを使用している場合、これは問題ではありません。

@interface でプロパティを宣言したくない場合は、<コード> .m の上部にクラス拡張子を配置できます。ファイル(<コード> @implementation 上)に、そこにプロパティを入れる。

<事前> <コード> <div class="toolbar-container"> <div class="toolbar-container-logo"> Digital<span class="toolbar-container-logo-sub">Blast</span> </div> <div class="toolbar-container-home" onclick="window.location.href='home/index.html'"> <h4>Home</h4> </div> <div class="toolbar-container-software" onclick="window.location.href='software/index.html'"> <h4>Software</h4> </div> <div class="clear-left"></div> </div> 0
 

If you don't need to access the outlet from another class, you don't need to make it a property. You can make it an instance variable in your @implementation:

@implementation ViewController {     IBOutlet UIView *someView; }  ... 

Some people don't like using plain instance variables and prefer to always use properties, even for private data. It is particularly useful to use properties instead of raw instance variables if you are not using ARC, because you can rely on property setters to retain and release their objects. If you are using ARC, this is not an issue.

If you want to use a property but you don't want to declare the property in your @interface, you can put a class extension at the top of your .m file (above your @implementation), and put the property there:

@interface ViewController () {  @property (nonatomic, strong) IBOutlet UIView *someview;  @end  @implementation ViewController  ... 
</div
 
 
2
 
vote

それらは、NIB / XIBエディタ(AKAインタフェースビルダー)に公開されるように宣言されました。

これにより、ビューをNIBエディタのオブジェクトのプロパティに関連付けることができ、XIB Unarchiverは初期化されたときに初期化されたときにプロパティを設定します。

 

They were declared so that they would be exposed in the NIB/XIB editor (aka Interface Builder).

This allows you to associate views to the object's properties in the NIB editor, and the XIB unarchiver will set the properties when initialized so that you may easily reference those instances from your class once initialized.

</div
 
 
   
   
1
 
vote

あなたは物件について尋ねていると思います。プロパティはあなたがゲッターとセッターを書くのを容易にするために使用されます。

なぜ私たちはセッターを得たのですか?将来的には、いくつかの規則を追加する必要がある場合には、変数にアクセスできる場所から1か所を持つことができます。

この質問は、なぜゲッターとセッターを使用するのか? コンセントは、プロパティにアクセスするためのInterfaceBuilder用です。

 

I think you are asking about Properties. Properties are used to facilitate you writing getters and setters.

Why do we need getters setters? to have one place from where we can access a variable so that in future if we need to add some rule we can do it without changing whole code.

this question is covered indepth in Why use getters and setters?

Outlets are for interfacebuilder to access properties.

</div
 
 

関連する質問

4  C ++テンプレートをARCで客観的なCタイプのために機能させる方法  ( How to make c templates work for objective c types with arc ) 
些細な例を取ります。次の main.mm fileをARCなしでコンパイルするとうまく機能します。 <事前> <コード> #import <Foundation/Foundation.h> template <typename T> int testing...

13  自動リファレンスカウント:高速列挙型エラー  ( Automatic reference counting error with fast enumeration ) 
IOS 5の自動リファレンスカウントを使用するために下記のコードを更新している間、実装クラスを繰り返すことができるように、高速列挙を実行しようとするとバッファが割り当てられたときにエラーが発生します。 "foreach"ループ。 「__Autorelease...

1  ブロックを引数として渡して、それをコピーすることで、アークの下にメモリリークを取得することは可能ですか?もしそうなら、それを防ぐ方法は?  ( Is it possible to have a memory leak under arc by passing a block as an argument ) 
私はObjective-Cプロジェクトに取り組んでいて、アークが有効になっています。現在私は現在2つの別々のクラスを扱っています。 A および<コード> B に電話しましょう。 A には B および B への強い参照があります。 copy 属性を持つBl...

0  IOSの特定のクラスで自動参照カウントを使用してください  ( Use automatic referencing count in specific classes in ios ) 
実際に私はiOS 5の前にiOSに行われたいくつかのクラスを追加しようとしていたときにこの質問にやってきて、これらのクラスはARCと私が追加しようとしているプロジェクトはIOS 5に行われています。アークに関連したコンパイルタイムエラーをお願いします。リリース...

16  sfhfkeychainutils。 iOSキーチェーン。アーク互換性  ( Sfhfkeychainutils ios keychain arc compatible ) 
SFHFKeyChainutilsを使用していた人が、ARCと互換性があるように変更されていたユーザーがそれらを修正していたかどうか疑問に思いました。より正確に <事前> <コード> NSDictionary *attributeResult = NULL;...

34  ARC移行者は、NSINVOCATIONの-SETARGUMENT:引数が__unsafe_unrateされていない限り、安全ではないと言っているのですか?  ( Why does the arc migrator say that nsinvocations setargument is not safe unle ) 
私はコードブロックを自動参照カウント(ARC)に移行し、ARC移行部がエラーを投げる NSINVOCATIONのSetArgumentは、オブジェクトと一緒に使用できない __unsafe_untrained 以外の所有権 のようなものを使ってオブ...

0  すべてのiBoutletsが_viewを除くのなのはなぜですか?  ( Why are all iboutlets set except view ) 
有名なが "MyController" Nibをロードしましたが、ビューアウトレットはエラーに設定されていませんでした。ただし、IBoutlet view が設定されていることを確認しました。 例外がスローされると、ブレークポイントがヒットします。下にはがわ...

0  iPhone ARCそれは悪いコーディングとメモリ管理を促進しますか? [閉まっている]  ( Iphone arc does it promote bad coding and memory management ) 
現在立つにつれて、この質問は私たちのQ&AMPにとって良いフィットではありません。フォーマット。私たちは事実、参考文献、または専門知識によって支持されることを期待していますが、この質問は...

2  ARC環境でParser Delegateを自己に設定する方法  ( How to set parser delegate to self in arc environment ) 
ねえ、私は過去にパーサーを使っていましたが、アーク環境ではありませんでした。今すぐ私のパーサを自己に設定したとき、それは私にエラーメッセージを与え、そして私のデータを解析しません。誰もが問題が何であるかを知っていて、それを解決する方法? これは私が自己にパーサ...

0  IOS 5のTableViewがARC Enabledでクラッシュしました  ( Tableview in ios 5 crashed with arc enabled ) 
私は私にエラーを与えているIOS5のTableViewにこの問題を抱えています。それは古いSDKとうまく機能することに注意してください。 これが関連コードです。 hファイル #import <事前> <コード> @interface WordList...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有