問題タブ [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.
objective-c - プロパティ名を文字列として取得
プロパティを渡し、それに割り当てられた名前を取得する方法が必要です。助言がありますか?
objective-c - Objective-Cでランタイムリフレクションを使用してプロパティゲッター/セッターメソッドセレクターを解決する方法は? (または逆)
Objective-C はランタイム リフレクション機能を提供します。宣言されたプロパティのゲッター/セッター セレクター名を見つけようとしています。field
/のような基本的なルールは知っていsetField:
ます。とにかく、ランタイム リフレクションは完全な抽象化のために名前を解決する機能を提供する必要があると思いますが、関数が見つかりませんでした。
Objective-C (実際には Apple の Cocoa) でランタイム リフレクションを使用して、宣言されたプロパティのゲッター/セッター メソッドセレクター(実装ではない)を解決するにはどうすればよいですか?
または逆クエリ。(メソッドセレクター → 宣言されたプロパティ)
objective-c - キーと値のコーディングは、宣言されたプロパティのカスタム アクセサー名をサポートしていますか?
Cocoa のKey-Value コーディングにより、プロパティへの get/set 操作が簡単になります。とにかく、ドキュメントには、事前定義された命名パターンのみを認識したと書かれています。Declared Propertyはこの機能でサポートできると思います。実は Declared Property の基本的なアクセスは Key-Value コーディングの検索パターンとまったく同じです。問題はカスタム アクセサーです。カスタム アクセサーはプロパティの属性として格納されるため、Key-Value コーディングで簡単にサポートできると思います。しかし、私はこれについての言及を見つけることができません。
カスタム アクセサーで宣言されたプロパティに Key-Value コーディングを使用する場合の通常の動作は何ですか?
ios - Xcodeで管理対象オブジェクトクラスファイルを自動的に生成するときに、プロパティ宣言でブール属性のタイプがNSNumberに設定されるのはなぜですか?
Xcodeにデータモデル内のエンティティのクラスファイルを自動的に作成させると、指定した属性はすべてBoolean
、プロパティ宣言でNSNumberのタイプを取得します。
私はARCを使用しているので、そうではありませんstrong
かretain
?
おそらくこれはBoolean
、オブジェクトに変換できないために発生します。あれは正しいですか?もしそうなら、どうすればブール値を持つべき属性を使用できますか?
objective-c - プロパティのデフォルトは nil ですか?
プロパティに ivar を使用しない場合は、次のようにします。
初めてチェックするself.someArray
と が返さnil
れますが_someArray
、これは保証されていますか? 私は ivar が であることが保証されていることだけを読みました。ivar をnil
宣言していない ( ivar ではない) ため、いつでもどこでも_someArray
そうなるかどうかはわかりません。nil
objective-c - 特定の状況ではこのUIViewがサブビューとして追加されないのに、他の状況では追加されるのはなぜですか?
viewForRootVc
UIViewサブクラスの宣言されたプロパティであるUIViewがありますNewView
。初期化するのはNewView
の責任viewForRootVc
ですが、サブクラスNewViewSubClass
がその背景色を設定します。これがすべて完了すると、ルートビューコントローラはそのビューにサブビューとしてRootVc
追加します。viewForRootVc
しかし、これは機能しません。viewForRootVc
実際には追加されません。
ただし、次の3つのいずれかを実行すると機能します(ARCを使用していることに注意してください)。
viewForRootVc
の背景色を設定するのではなく、で設定NewViewSubClass
しNewView
ます。そして、のインスタンスを初期化するのではなく、NewViewSubClass
単に。のインスタンスを初期化しますNewView
。- で初期化するとき
viewForRootVc
はNewView
、直接割り当てを使用するのではなく、セッター(つまり、self.viewForRootVc)を呼び出します。 viewForRootVc
のヘッダーファイルにivarとしてリストしますNewView
。
なぜこれら3つが必要なのかわかりません。
動作しないコードは次のとおりです:RootVc.m
NewView.h
NewView.m
NewViewSubClass.m
私が気づいたことの1つは、ivarとして指定する場合、の実装ファイルviewForRootVc
を入れる必要がないことです。@synthesize viewForRootVc;
NewViewSubClass
私は常に、宣言されたプロパティが次のことを効果的に達成することを理解していました。
- 他のオブジェクトがそれらにアクセスできるようにします。
- 必要に応じてセッターが呼び出されるようにします。
retain
ARCを使用していない場合、プロパティ宣言で指定した場合、セッターを呼び出すとプロパティが自動的に保持されます。- ARCでは、宣言されたプロパティに対してivarが自動的に生成されます。
しかし、明らかにこれ以上のものがあります。それがスコープの問題なのか、それとも上記の機能しないコードが2つの異なるバージョンを作成することになったのかはわかりません。1つはのメソッドviewForRootVc
で指定された正しいフレームを持ち、もう1つは正しい背景色を持っています。のメソッドで指定されていますが、どちらにも正しいフレームと色の両方がありません。NewView
init
NewViewSubClass
init
誰かが宣言されたプロパティとivarsの意味を明確にし、セッターを呼び出して宣言されたプロパティを設定するか、値を直接割り当てることができることを強く望んでいます。
c++ - C++、クラスを作成しようとすると、これを受け取ります: エラー: クラス 'media' で宣言された 'void media::*()' メンバー関数がありません
私の将来のコードをきれいにするためにクラス/関数を作成しようとしています。Code::Blocks を使用してプログラムを作成していますが、現在、次の cpp と、disctype、ripmusic、および dvdmanip のヘッダー ファイルについて上記のメッセージを受け取ります。コンパイラは gcc であり、これはメイン プログラムではありません。
ヘッダー ファイル:
cpp ファイル:
objective-c - Objective-C の読み取り専用プロパティは、strong または copy を指定する必要がありますか?
読み取り専用の文字列プロパティがある場合、宣言でstrong
(またはretain
) またはを指定する必要がありますか? copy
指定しない場合、そのうちの1つが想定されますか?
所有権属性は、セッターがある場合にのみ役立つようです。
objective-c - Objective-C で宣言された @property 属性 (nonatomic、copy、strong、weak)
宣言されたプロパティに対して、、、、、などの各属性を使用する必要がある場合、誰かが詳しく説明し、それぞれが何をするかを説明できますnonatomic
か? ある種の例も素晴らしいでしょう。ARCを使用しています。copy
strong
weak
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 つの式の違いは「構文だけで、他には何もない」と答えていたでしょう。私が明らかに間違っていることを考えると、私がどのように間違っているかを理解する必要があります。