[解決済み】Objective-C ARC: strong vs retainとweak vs assign
2022-03-25 08:50:32
質問
ARCによって導入されたプロパティの新しいメモリ管理属性は2つあります。
strong
と
weak
.
とは別に
copy
というのは、明らかに全く違うものです。
とは何か違いがあるのでしょうか?
strong
対
retain
と
weak
対
assign
?
私の理解では、ここでの唯一の相違点は
weak
が割り当てられます。
nil
をポインタに設定し、一方
assign
ということは、一度解放したポインタにメッセージを送るとプログラムがクラッシュしてしまうということです。しかし、もし私が
weak
にメッセージを送るので、このようなことは起こりません。
nil
は何もしない。
との違いについてはわかりません。
strong
と
retain
.
を使用しなければならない理由はありますか?
assign
と
retain
それとも、非推奨になるのでしょうか?
解決方法は?
からの ARCリリースノートへの移行について (プロパティ属性のセクションの例)。
// The following declaration is a synonym for: @property(retain) MyClass *myObject;
@property(strong) MyClass *myObject;
だから
strong
と同じです。
retain
をプロパティ宣言で使用します。
ARCのプロジェクトでは、私は
strong
の代わりに
retain
を使用します。
assign
をC言語のプリミティブプロパティに、そして
weak
Objective-Cのオブジェクトへの弱い参照用です。
関連
-
[解決済み】Cocoapodsをインストールできない - プロジェクト・ディレクトリにポッドファイルが見つからない
-
[解決済み] シミュレーターiOS 13でダークモードを使用するには?
-
[解決済み] 警告: 'characters' は非推奨です。String または Substring を直接使用してください。
-
[解決済み] EXC_CORPSE_NOTIFY シンボルのクラッシュが発生しました、追跡するには?
-
[解決済み] ERROR ITMS-9000: "Redundant Binary Upload. 列車 '1.0' のビルドバージョン '1.0' のバイナリアップロードが既に存在します" と表示されました。
-
[解決済み] CFBundleVersionとCFBundleShortVersionStringには、どのような値を使用すればよいですか?
-
[解決済み] アラート "デバッグを続けるには、開発者ツールへのアクセスが他のプロセスの制御を必要とします。これを許可するにはパスワードを入力してください。
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み】Objective-Cのstrongとweakの違い。
-
[解決済み】Objective-Cで宣言された@property属性(非原子、コピー、strong、weak)。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Xcode 10.2.1 Command PhaseScriptExecutionが0以外の終了コードで失敗した。
-
[解決済み】印刷します。エントリ, ":CFBundleIdentifier", Does Not Exist
-
[解決済み】iOS用のプライベートメッセージUI(受信、送信、作成)フレームワークはありますか?
-
[解決済み】クラスは両方で実装されており、どちらかが使用されることになります。どちらが未定義か
-
[解決済み] エラーです。cocoapodsでRestKitをインストール後、「サンドボックスがPodfile.lockと同期していない...」と表示される
-
[解決済み] iPhoneが使用できません。デバイスを再接続してください
-
[解決済み] 基本的なUIButtonをプログラムで作成するには?
-
[解決済み] UIViewController viewDidLoad vs. viewWillAppear。適切な役割分担とは?
-
[解決済み] 配列型 'int [16]' は代入不可能です。
-
[解決済み] UILabelにスペース/パディングを追加する