問題タブ [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 投票する
1 に答える
959 参照

ios - NSMutableString プロパティ「appendString で不変オブジェクトを変更しようとしています:」の使用エラー

NSMutableString文字列をusingに追加するとappendString:、次のエラーが発生します。

私のコードは次のとおりです。

そして私のヘッダーファイルで:

オブジェクトが であるために不変であると言う理由がわかりませんNSMutableString[self.partialWord appendString:@"-"];パートが動かないのはなぜ?

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

objective-c - 元のクラスにないカテゴリで定義されたプロパティ

カテゴリを作成しようとしている非常に大きなクラスがあります。元のクラスの .m ファイルには、2 つのオブジェクト (カテゴリ .h ファイルで定義されている) があり、「識別されていない識別子」ビルド エラーが発生しています。

これは、UploadViewController+CreateExportFiles.h クラス内の 1 つのオブジェクト定義です。

元のクラス (UploadViewController.h) の .h ファイルは次のようになります。

booksArrayエラーが発生しているクラスでの使用法は次のとおりです。

エラーを解決するために他に何かしなければならないことはありますか?

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

objective-c - クラス拡張ではなく、ヘッダーでプロトコルによって指定されたプロパティを宣言する必要があるのはなぜですか (実装)

したがって、プロパティを宣言する必要があるプロトコルがあります。

およびそれに準拠するオブジェクト:

ただし、実装ファイル (クラス拡張) 内でプロパティ (プロトコルで指定) を宣言すると、次のようになります。

次のエラーが表示されます。

クラス拡張 'MyViewController' のプロパティの再宣言が不正です (属性は 'readwrite' である必要があり、そのプライマリは 'readonly' である必要があります)

これに対処する 2 つの主要な SO スレッドがあるようです:
属性は読み取り書き込みである必要があり、そのプライマリは読み取り専用
である必要があり、
別のウィンドウを宣言できません

最初の答えは何も説明しません

2 番目の回答は、ヘッダー内でプロパティを宣言することにより、このエラーを実際に回避できることを示しています。そして悲しいかな

ヘッダ

実装

これはエラーなしでビルドされます。

@propertyまた、プロトコルの内部を宣言しても、自動的に合成されないことも知っています。

@propertyしたがって、宣言を実装内に保持したい場合は、そうしなければなりませ@synthesizeん。そして、これも機能します。


だから私の質問は、最初にプロトコル内で宣言された@property場合、ヘッダーと実装ファイルの内部を宣言することが問題になるのはなぜですか?@property

@propertyプロトコルがなければ、唯一の違いはパブリックにするかプライベートにするかだと思いました。@propertyしかし、ヘッダーと実装ファイルでa を宣言すると、他のことが起こる/起こらないことが明らかにあります。

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

ios - Objective-Cプロパティに実際に強い宣言が必要ですか?

これまでの私の理解では、(retain) はプロパティの参照カウントを増やし、本質的に (strong) とまったく同じです。すべてのプロパティはデフォルトで保持するように設定されているため(特に指定されていない限り)、追加(強力)がまったく必要です:

以下と同じです:

上記はどちらも同じですよね?

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

objective-c - プロパティがコピーとして定義されている場合、ivar に割り当てるときにコピーを行う必要がありますか?

として定義されたプロパティがあるとします@property (copy) NSString *name

init以下のように定義されたメソッドがあるとします。

copyコメント行にコピーが必要ですか、それとも合成されたセッターと同じようにプロパティ宣言に基づいて ARC が処理しますか?