問題タブ [retain]
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でのメモリ解放の問題
以下の私のプロジェクトにある実際の例があります。私の目的は、SMS受信用の最も可能性の高い電話番号と、その(電話)番号のみを選択することです。最後にメモリを解放しない場合はすべてうまく機能しますが、それを実現することはできません。私の質問は次のとおりです。以下の例でメモリを解放する正しい方法はどこ(およびどのように)ですか?
iphone - viewDidLoad で初期化された変数が Objective-C で値を保持しないのはなぜですか?
いくつかの文字列を保持するだけの Location という名前のクラスを作成しました。ビューコントローラーでそのクラスの2つのインスタンスを使用しています.viewDidLoadで2つの変数を初期化すると、そのメソッドでは正常に機能しますが、後で使用しようとするとnullになります。それらを保持プロパティとして設定しました。私はそれらをテストし、それらがviewDidLoad用に初期化されていることを知っています(ビューでフィールドを使用しています)。それらが解放されないようにするために、Location クラスで何か特別なことをする必要がありますか? 別の方法でそれらを再初期化すると、すべてがスムーズに実行されます。
objective-c - CFMakeCollectable を呼び出した後の予期しない保持カウント
私はこのビットのコードを持っています:
驚くべきことに、コードを実行すると、コンソールに次の出力が表示されます。
retct before: 1
retct after: 2147483647
私は期待していたでしょう:
retct 前: 1
retct 後: 0
私は何か間違ったことをしていますか?私は間違った期待を持っていますか?
cocoa - NSString の割り当てと保持
NSStrings に関する簡単な質問ですが、文字列に値を割り当てるコードがあります。見つかったものに応じて、substringToIndex または定数文字列 @"0.00" によって値が割り当てられます。使用しても問題ありませんか
古い値を解放して新しい値を保持するため、割り当ての場合は?
前の繰り返しで var に定数文字列が割り当てられたのか、それとも substringToIndex の戻り値が割り当てられたのかを知る方法はありませんが、定数文字列に対して保持と解放を呼び出すことは無害であると言われましたが、これは本当ですか?
iphone - tableView:cellForRowAtIndexPathのカウントを保持します:
Appleのサンプルコードでは、tableView:cellForRowAtIndexPath:
aのメソッドはUITableViewDataSource
保持カウントが1のセルを返します。割り当てますが、自動リリースはしません。ただし、静的アナライザーは、メソッド名が「new」などで始まらないため、これがCocoaの命名規則に違反していると文句を言います。ドキュメントには、セルの予想される保持数については記載されていません。セルにはどのような保持カウントが必要ですか?ドキュメントに対してバグを報告する必要がありますか?ありがとう。
編集:私が見たサンプルコードはそれを自動リリースします、そして私の目はどういうわけかそれをスキップしました。時間を無駄にしてすみません。回答ありがとうございます。
さらなる編集:質問者が質問でその用語を使用するためにジャンプする場合は、おそらくClangに対してバグを提出する必要があります。:-)
objective-c - Objective C: @property(retain) は保持を呼び出しませんか?
ストレージ メモリ割り当てのバグを追跡しようとしていたので、クラスの保持メソッドと解放メソッドをオーバーライドしました。このクラスのインスタンスを別のプロパティに割り当てると、オブジェクトの保持カウントが増加することに気付きましたが、再定義した保持は呼び出されませんでした。
これはどのように可能ですか?保持を呼び出さずにオブジェクトを保持する (保持する) プロパティはありますか?
objective-c - Objective-C で C 配列を保持する
私は firstClass で ac 配列を作成します (これはインターフェイスで作成されます):
次に、別のビューに移動して、最初のビューに戻ります。ただし、C 配列が 0 にリセットされている場合を除きます。
ビュー間を行き来するときに配列を保持するにはどうすればよいですか?
iphone - 何も自動リリースされないようにするにはどうすればよいですか?
リリース関数を呼び出したときに、カスタム クラスが開始されている間ずっとアクセス可能な変数を作成する方法が必要です。NSDate と NSString を保持する必要があります。
iphone - iPhone-保持カウント-明らかな理由もなく保持カウントが上がる
簡単な質問ですが、簡単なものが欠けていることを願っています。わかりました。別のクラスへのポインタを保持するクラスがあります。MainMenuClassおよびNormalGameClass。MainMenuClassの内部では、次のことを行います。
さて、NormalGameClassのdealloc関数が呼び出されていないときはいつでも問題に最初に気づいたので、retainCount呼び出しをいくつか行いました。何らかの理由で、MainMenuのrelease関数に戻ると、retaincountは6になります。非常に混乱。NormalGameClassのviewDidLoadの後の最初の行の[selfretainCount]は4です。ここで何が起こっているのか誰かが知っていますか?NormalGameClassでallocを呼び出すのは一度だけですが、それでも6まで保持されますか?不思議なことに、それを超えることはありません。洞察をありがとう。
更新:物事をいじっていて、これが厄介であることがわかりました。MainMenuClassで、NormalGameを取り除く方法は次のとおりです。
現在、この設定では、NormalGameのdeallocが呼び出されることはありません。ただし、上記の投稿の直後に[m_NormalGame release]を呼び出すと、NormalGameのdeallocが2回呼び出されます。=/混乱してペイントしてください。
iphone - NSArrayオブジェクトは、ポインタを返した後にスコープ外になります
以下のコードを関数で使用して、辞書オブジェクトの配列を返そうとしています。残念ながら、スタック内の次の関数に戻った後、可変配列内のすべての行が「スコープ外」になりました。私の理解では、配列は行(ディクショナリ)オブジェクトを自動的に保持する必要があるため、行ポインターがスコープ外になった場合でも、行オブジェクトの保持カウントは1のままです。ここで何が間違っているのでしょうか。含まれているオブジェクトが解放されないようにこの配列を構築するにはどうすればよいですか?