問題タブ [synthesize]

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 投票する
2 に答える
86 参照

objective-c - このivarに割り当てても効果がないのはなぜですか?

BPGameEngine読み取り専用プロパティを持つクラス がありますcurrCharacter_currCharacter = someCharacter;以前は、 の中で ( のように) ivar に直接代入していましたBPGameEngine。サブクラスで、このプロパティに書き込む必要があることに気付いたので、そのように匿名カテゴリで再宣言しました

その後、コンパイラーにエラーが発生し (奇妙なことに、2 日後には再現できなくなりました)、@synthesize ステートメントが必要であることをほのめかしていたので@synthesize currCharacter = _currCharacter;、サブクラス ( BPGameKitMPEngine) に追加しました。

iVar を直接使用しただけなので、同様の匿名カテゴリをスーパークラスに追加しませんでした。次に、super( )への呼び出しで呼び出され_currCharacter = someCharacter;たメソッド内にある行が単に何もしないことを発見しました。デバッガーに表示され、nil ではありませんでしたが、行が実行された後、残りました。奇妙なことに、サブクラスに同様の匿名カテゴリを追加すると、問題が修正されました。BPGameEngineBPGameKitMPEngine[super methodContainingAssignmentToCurCharIvar]_currCharactersomeCharacter_currCharacternil@synthesize

の一貫性のない要件は、@synthesizeXcode のバグに違いないように思えますが、これ以外のことには困惑しています。@synthesize誰かがサブクラスにあることの問題を説明できますか?

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

multithreading - コア データ マルチスレッド 合成された属性 なし

Core Data を使用するアプリがあります。私のアプリはバックグラウンド スレッドで何らかの処理を行い、出力をコア データに保存します。同時に、メイン/UI スレッドがコア データの読み取り操作を実行します。

現在、カスタムのゲッターとセッターを作成するために、管理対象オブジェクトの 1 つの属性を合成しようとしています (長い文字列をファイルに自動的に保存し、代わりにパスを保存するだけです)。しかし、後でメインスレッドでこれらのオブジェクトを読み取ると、それらは nil になりました。カスタムのゲッターとセッターを削除して、単に に@dynamic attr置き換えてみまし@synthesize attr = _attrたが、それでも機能しなくなりました。(私は自分のプロジェクトをきれいにして、シミュレーターと私が試していたデバイスの両方から削除しました)。

元の構文を復元した瞬間、すべてが再び機能し始めました。何がそのような動作を引き起こしているのでしょうか?

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

objective-c - Objective-C: 合成変数にアクセスできません

私は Cocos2d を使用しており、別の CCScene から変数 (CakesEaten) にアクセスしようとしています。

次のエラーが表示されます: MainScene タイプのオブジェクトにプロパティ "CakesEaten" が見つかりません。ビルド時に受け取る唯一のエラーです。

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

ios - iOS 7 Dev - @synthesize が ivar を自動作成しない

現在、最新バージョンの Xcode (v5.0.2) を使用しており、アプリの展開ターゲットは iOS 7.0 です。

私の問題は、どのクラスでも、ヘッダーにプロパティを設定できることです

元:@property (strong, nonatomic) NSString *firstName;

実装ファイルでは、問題なく合成できます

元:@synthesize firstName;

私の問題は_firstName、コードで使用できないことです。私は他のプロジェクトで自動ivarを問題なく使用しました(プロパティ名の前にアンダースコアが付きます)。

Xcode は不平を言い、アンダースコアのないプロパティの名前に変更するように指示します。このプロジェクトがアンダースコア付きの ivar を自動的に作成しない理由がわかりません。Objective-C の古いバージョンでは、これを自分で行う必要がありましたが、iOS 7 では必要ありません。

ありがとう!

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

ios - IOS: プロパティと自己

を宣言するときは、次のNSStringようにします。

他のクラスからこの文字列へのアクセスを許可したい場合は、この方法でプロパティを追加します

そして私は合成を書きます

今、私はいくつかの質問があります:

  1. プロパティを使用する場合、インターフェイスで単純な宣言も使用する必要がありますか?
  2. プロパティとして使用する場合my_string、常にself.前に使用する必要がありますか?
  3. プロパティを使用する場合@synthesize、それぞれに記述する必要がありますか? (必要でない場合があることがわかったからです。