問題タブ [declared-property]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
10 に答える
24913 参照

objective-c - プロパティ名を文字列として取得

プロパティを渡し、それに割り当てられた名前を取得する方法が必要です。助言がありますか?

0 投票する
2 に答える
2293 参照

objective-c - Objective-Cでランタイムリフレクションを使用してプロパティゲッター/セッターメソッドセレクターを解決する方法は? (または逆)

Objective-C はランタイム リフレクション機能を提供します。宣言されたプロパティのゲッター/セッター セレクター名を見つけようとしています。field/のような基本的なルールは知っていsetField:ます。とにかく、ランタイム リフレクションは完全な抽象化のために名前を解決する機能を提供する必要があると思いますが、関数が見つかりませんでした。

Objective-C (実際には Apple の Cocoa) でランタイム リフレクションを使用して、宣言されたプロパティのゲッター/セッター メソッドセレクター(実装ではない)を解決するにはどうすればよいですか?

または逆クエリ。(メソッドセレクター → 宣言されたプロパティ)

0 投票する
1 に答える
343 参照

objective-c - キーと値のコーディングは、宣言されたプロパティのカスタム アクセサー名をサポートしていますか?

Cocoa のKey-Value コーディングにより、プロパティへの get/set 操作が簡単になります。とにかく、ドキュメントには、事前定義された命名パターンのみを認識したと書かれています。Declared Propertyはこの機能でサポートできると思います。実は Declared Property の基本的なアクセスは Key-Value コーディングの検索パターンとまったく同じです。問題はカスタム アクセサーです。カスタム アクセサーはプロパティの属性として格納されるため、Key-Value コーディングで簡単にサポートできると思います。しかし、私はこれについての言及を見つけることができません。

カスタム アクセサーで宣言されたプロパティに Key-Value コーディングを使用する場合の通常の動作は何ですか?

0 投票する
3 に答える
1400 参照

ios - Xcodeで管理対象オブジェクトクラスファイルを自動的に生成するときに、プロパティ宣言でブール属性のタイプがNSNumberに設定されるのはなぜですか?

Xcodeにデータモデル内のエンティティのクラスファイルを自動的に作成させると、指定した属性はすべてBoolean、プロパティ宣言でNSNumberのタイプを取得します。

私はARCを使用しているので、そうではありませんstrongretain

おそらくこれはBoolean、オブジェクトに変換できないために発生します。あれは正しいですか?もしそうなら、どうすればブール値を持つべき属性を使用できますか?

0 投票する
3 に答える
1116 参照

objective-c - プロパティのデフォルトは nil ですか?

プロパティに ivar を使用しない場合は、次のようにします。

初めてチェックするself.someArrayと が返さnilれますが_someArray、これは保証されていますか? 私は ivar が であることが保証されていることだけを読みました。ivar をnil宣言していない ( ivar ではない) ため、いつでもどこでも_someArrayそうなるかどうかはわかりません。nil

0 投票する
1 に答える
215 参照

objective-c - 特定の状況ではこのUIViewがサブビューとして追加されないのに、他の状況では追加されるのはなぜですか?

viewForRootVcUIViewサブクラスの宣言されたプロパティであるUIViewがありますNewView。初期化するのはNewViewの責任viewForRootVcですが、サブクラスNewViewSubClassがその背景色を設定します。これがすべて完了すると、ルートビューコントローラはそのビューにサブビューとしてRootVc追加します。viewForRootVc

しかし、これは機能しません。viewForRootVc実際には追加されません。

ただし、次の3つのいずれかを実行すると機能します(ARCを使用していることに注意してください)。

  1. viewForRootVcの背景色を設定するのではなく、で設定NewViewSubClassNewViewます。そして、のインスタンスを初期化するのではなく、NewViewSubClass単に。のインスタンスを初期化しますNewView
  2. で初期化するときviewForRootVcNewView、直接割り当てを使用するのではなく、セッター(つまり、self.viewForRootVc)を呼び出します。
  3. viewForRootVcのヘッダーファイルにivarとしてリストしますNewView

なぜこれら3つが必要なのかわかりません。

動作しないコードは次のとおりです:RootVc.m

NewView.h

NewView.m

NewViewSubClass.m

私が気づいたことの1つは、ivarとして指定する場合、の実装ファイルviewForRootVcを入れる必要がないことです。@synthesize viewForRootVc;NewViewSubClass

私は常に、宣言されたプロパティが次のことを効果的に達成することを理解していました。

  1. 他のオブジェクトがそれらにアクセスできるようにします。
  2. 必要に応じてセッターが呼び出されるようにします。
  3. retainARCを使用していない場合、プロパティ宣言で指定した場合、セッターを呼び出すとプロパティが自動的に保持されます。
  4. ARCでは、宣言されたプロパティに対してivarが自動的に生成されます。

しかし、明らかにこれ以上のものがあります。それがスコープの問題なのか、それとも上記の機能しないコードが2つの異なるバージョンを作成することになったのかはわかりません。1つはのメソッドviewForRootVcで指定された正しいフレームを持ち、もう1つは正しい背景色を持っています。のメソッドで指定されていますが、どちらにも正しいフレームと色の両方がありません。NewViewinitNewViewSubClassinit

誰かが宣言されたプロパティとivarsの意味を明確にし、セッターを呼び出して宣言されたプロパティを設定するか、値を直接割り当てることができることを強く望んでいます。

0 投票する
3 に答える
133 参照

c++ - C++、クラスを作成しようとすると、これを受け取ります: エラー: クラス 'media' で宣言された 'void media::*()' メンバー関数がありません

私の将来のコードをきれいにするためにクラス/関数を作成しようとしています。Code::Blocks を使用してプログラムを作成していますが、現在、次の cpp と、disctype、ripmusic、および dvdmanip のヘッダー ファイルについて上記のメッセージを受け取ります。コンパイラは gcc であり、これはメイン プログラムではありません。

ヘッダー ファイル:

cpp ファイル:

0 投票する
1 に答える
1234 参照

objective-c - Objective-C の読み取り専用プロパティは、strong または copy を指定する必要がありますか?

読み取り専用の文字列プロパティがある場合、宣言でstrong(またはretain) またはを指定する必要がありますか? copy指定しない場合、そのうちの1つが想定されますか?

所有権属性は、セッターがある場合にのみ役立つようです。

0 投票する
4 に答える
162106 参照

objective-c - Objective-C で宣言された @property 属性 (nonatomic、copy、strong、weak)

宣言されたプロパティに対して、、、、、などの各属性を使用する必要がある場合、誰かが詳しく説明し、それぞれが何をするかを説明できますnonatomicか? ある種の例も素晴らしいでしょう。ARCを使用しています。copystrongweak

0 投票する
2 に答える
186 参照

objective-c - [foo ビュー] が私のコードで foo.view と異なる動作をするのはなぜですか?

純粋に偶然、呼び出し[bar.view addSubview:[foo view]]が機能しないことを発見[bar.view addSubview:foo.view]しましたが、次のコードでは機能します。

(最後の行には、foo実行前に設定する必要があるサブビューがいくつかあるためです。特に、 a UIWebView. メッセージが送信される前にそれらがインスタンス化されていない場合、メッセージはnil. Withに移動しfooます。)

これら 2 つは機能的に同一であると考えていfoo.viewました。同じゲッターを呼び出します[foo view]が、実際にはそうではありません。ドット構文では目的の結果が得られますが、角かっこを使用するとメッセージが に送信されnilます。

10 分前に聞いていたら、2 つの式の違いは「構文だけで、他には何もない」と答えていたでしょう。私が明らかに間違っていることを考えると、私がどのように間違っているかを理解する必要があります。