Objective-Cまたは他のどの言語で適用されますか?タイプと生涯修飾子の違い
私が本当に求めていることは、__weak
とconst
は同じ分類ですか? __weak
、const
などについて話しているときに、タイプのタイプと生涯の修飾子を交換できますか?
Objective-Cまたは他のどの言語で適用されますか?タイプと生涯修飾子の違い
私が本当に求めていることは、__weak
とconst
は同じ分類ですか? __weak
、const
などについて話しているときに、タイプのタイプと生涯の修飾子を交換できますか?
Cでは、型修飾子は、指定された型に品質(属性、プロパティ)を付与します。 const
(読み取り専用、書き込みなし)、volatile
(キャッシュなし)、restrict
(エイリアスなし)の3種類の修飾子があります。
自動参照カウント(Objective-C用)は、__autoreleasing
,__strong
、__unsafe_unretained
および__weak
の4つの新しいタイプ修飾子を追加します。 ARCの性質、すなわちメモリ管理の自動化のために、これらの4つのタイプの修飾子は、所有権に関連する属性を付加します。
私が本当に求めているのは、
__weak
とconst
は同じ分類ですか?
これらはどちらもタイプ修飾子ですが、__weak
は所有者限定子です。
私が
__weak
、const
などと話しているときに、タイプとライフタイムの修飾語句を交換できますか?
いいえ、それらは互換性がありません。上記のすべての修飾子はタイプ修飾子ですが、ARCによって導入された4つの修飾子はでも所有者修飾子です。
はthe LLVM projectが金種所有修飾子Apple一方を使用注寿命修飾子代わりに使用しているように見えます。
constは、そのライフサイクルにわたってオブジェクトを変更できないように指定します。
__weakは、オブジェクト参照が参照カウントをインクリメントしないことを意味します.ARCを使用している場合、所有していないオブジェクトや循環参照カウントなどの参照カウントを増やしたくないオブジェクトに便利です。 strongはデフォルトになり、参照カウントが変化することを意味します。
問題は '__weak'と' const'の違いではないことに注意してください。代わりに、_type修飾子_と_ownership修飾子という用語についてです。 –
例を挙げることができますか? – Shahzeb
私は質問を更新しました。 – Espresso