問題タブ [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.

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

objective-c - Objective-C addSubView 保持カウント

サブビューをビューに追加すると、次のようになるという印象を受けました。

しかし、サイトセル (コントローラー) を解放するべきではないようです。だから私はビューを解放する必要がありますか、私はこれを少し前に釘付けにしたものを保持していましたが、それはずれています。(そして、TableView を使用するには、UITableViewController をサブクラス化する必要がありますよね?)

(self.left は、nib に追加された self.view のサブビューです)

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

iphone - 配列のメモリ リーク - 目的 c

コードからメモリ リークを取り除こうとして問題が発生しています。以下のコードでは、「configurationArray = [[NSArray arrayWithContentsOfFile:controllerConfigurationFilePath] preserve];」という行でメモリ リークが発生します。ただし、retain を削除するとアプリケーションがクラッシュし、retain を autorelease に変更するとクラッシュが発生します。

ありがとう、ウィリアム

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

iphone - 割り当てを実行せずにNSNumberを取得して、initWithIntに応答するにはどうすればよいですか?

私の理解では、[nsnumber initWithInt]などの「便利な」メソッドは、指定されたクラスのコピーを作成し、目的の値に初期化する必要があります。

Timeleftは整数であるため、initWithIntが機能し、その結果、minutesLeft(保持するように設定されたプロパティ)が新しいNSNumberを受信し、保持する必要があります。問題は、何らかの理由で、「NSNumberが+initWithIntに応答しない可能性がある」という警告が表示されることです。問題のプロパティは保持するように設定されているため、[nsnumber alloc] initwithintを使用したくありません。これは、プロパティを解放する必要があるためです。

何か案は?

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

ios - ハンドルなしで割り当てられたオブジェクトを適切に解放する方法

Instrumentsは、これはメモリリークであると指摘していますが、適切にリリースする方法や、いつリリースする必要があるのか​​わかりません。ループ内でのみ必要な新しいオブジェクトにプロパティを割り当てるためのより良い規則はありますか?特定の行はexpense.addedDate = [NSDate new];です。

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

iphone - 割り当てられたオブジェクトまたは保持されたオブジェクトを何回解放しますか?

iPhoneゲームを作っています。割り当てられている、または保持されているすべてのオブジェクトを解放したいと考えています。関数では、deallocそのようなオブジェクトをすべて解放していますが、オブジェクトがまだ割り当てられていないときにオブジェクトを解放してしまうことがあることに気付きました。retainCountそのため、リリースする前に、その値がゼロより大きいかどうかを確認する必要があると考えました。

私の質問は:

retainCountがゼロより大きいかどうかを確認してからリリースするだけですか?

また

何度でも解放するべきかretainCount

ご協力いただきありがとうございます!

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

objective-c - self を使用する場合と、retain を使用する場合

「Beginning iPad Development」という Apress の本を読んでいて、作成者がプロパティに値を代入しているときに、以下を使用する場合があることに気付きました。

その他の場合は、次を使用します。

どちらの場合も、変数は次のように定義されたプロパティです。

理解を深めるためになぜこれが行われるのか、誰かが知っているかどうか疑問に思いました

ありがとう、ウィリアム

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

iphone - Objective-C は明確化を保持

私はこのコードを見ています:

後で...

self.viewControllers とコントローラーが同じ割り当てられたメモリ (NSMutableArray * 型) を指していることがわかりますが、[controllers release] を呼び出すと、self.viewControllers も解放されないか、self.viewControllers = controllers が自動的に保持されます。その記憶?

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

iphone - オブジェクトを「保持」しなくても正常に機能するのはなぜですか?

ここでは、「test」メソッドで「tempString」の自動解放を使用しました。ルールに従って、メインで「[一時保持]」を使用する必要があります。しかし、私はそれを使用しませんでした。それでも問題なく動作し、出力を印刷します。では、「保持」の必要性は何ですか?誰でも理由を教えてもらえますか?前もって感謝します。

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

objective-c - タイプNSMutableSetのプロパティに対してretainとcopyを使用するセマンティクスは何ですか。

私は最も優れたAccessorizerを使用して、XcodeでObj-Cコードのセッター/ゲッターを自動的に生成しています。最近、Accessorizerに変更が加えられました。

古いバージョンのAccessorizer:
@property(nonatomic、retain)NSMutableSet * setA;
@property(非アトミック、保持)NSMutableSet * setB;

Accessorizerの新しいバージョン:
@property(nonatomic、copy)NSMutableSet * setA;
@property(nonatomic、copy)NSMutableSet * setB;

悲しいことに、新しいバージョンは私のコードをクラッシュさせます。私のコードでは、次のことを行います。

//..。

上記のコード行は、古い方法(保持)を使用すると正常に機能しますが、新しい方法(コピー)を使用するとクラッシュします。明らかにここで何かがおかしい。私はAccessorizerに大きく依存しています。誰かがNSMutableSetのコンテキストでコピー/保持を使用することの意味を明確にできますか?

ありがとう、
ダグ

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

objective-c - UIViewは保持されます

UIViewの割り当てが解除されない理由を追跡するのに実際の問題があります。

いくつかのUIViewを備えたUIViewControllerがあり、それらはすべて保持するIBOutletプロパティです。

UIViewControllerのdeallocメソッドでUIViewをリリースするのは確実です。ただし、UIViewのdeallocが呼び出されることはありません。他に何がUIViewを保持しているのかわかりません。

私のUIViewControllerの他のすべてのUIViewはうまく機能しますが、これだけでは問題ありません。

誰かがこれの原因となる可能性があるものを追跡するための良いテクニックを持っていますか?

よろしく、リッチ