問題タブ [alloc]

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 投票する
6 に答える
17611 参照

objective-c - alloc と allocWithZone: の違いは何ですか?

フォーラムの議論から、大きな違いはパフォーマンス要因のように見えます。 allocWithZone: は特定のメモリ領域からメモリを割り当て、スワッピングのコストを削減します。

実際には、 allocWithZone: を使用する機会はほとんどありませんが、 allocWithZone: を使用するケースを説明する簡単な例を誰でも示すことができます。

ありがとう、

0 投票する
4 に答える
970 参照

iphone - iOS/Objective-C プログラミングにおける特定の alloc/release イディオムを理解するのに助けが必要

私は、Objective-C 開発を学び始めた経験豊富な C/C++ プログラマーです。現在、UICatalog サンプルを調べていると、いくつかの場所で見たが理解できなかったイディオムの別のインスタンスに出くわしました。

コード:

私の知る限り、これは ButtonsViewController を割り当てて初期化し、ButtonsViewController の NSDictionary を作成し、辞書を menuList と呼ばれる NSMutableArray に追加します (これは上記のコードが存在する MainViewController のメンバー変数です)。その後、必要に応じて MainViewController がディクショナリ エントリを使用してビューを buttonsViewController に切り替えます。

私の質問は: なぜこのコードの後でも buttonsViewController がまだ有効なのですか? 間に「保持」なしで割り当てられ、解放されました。NSDictionary または NSMutableArray に何かを追加すると、暗黙の「保持」がありますか? もしそうなら、私はそれをどうにかして理解できるはずだったのですか、それともあなたが読んで覚えなければならないことの1つにすぎませんか?

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

objective-c - -dealloc メソッドは、配列を所有しているときに呼び出されませんでした。

Foundation アプリの 2 つの Objective-C コードを次に示します。このコードは関数内にあります。

そして、私の TheShape クラスには、このdeallocオーバーライド メソッドがあります。

私のプログラムは別の方法では動作しますが、期待どおりには動作しません。メッセージが送信されると、[arrayOfObjects release]"TheShape dealloc..." という文字列がログに表示されるはずです。そうではありません。

Q1: なぜですか?

だから私は少し掘り下げて物事を単純化します。次のような簡単なことをすると:

デバッグ メッセージはまだログに表示されません。

Q2: なぜですか?

しかし、私がこれを行うと:

デバッグ メッセージログに表示されます。最初のサンプルの alloc/init も に変更すると、デバッグ メッセージもログに表示されますnew

Q3: なぜですか?

明らかに、alloc/init/release サイクル (Q の 1 および 2) と、newおよびalloc/init(Q3) の想定される等価性に概念的な何かが欠けています。私のように、考えるのが難しい人のために、もう少し物事を説明するチュートリアルを教えてもらえますか?

ありがとう、

明細書

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

c - C 文字列を 2 次元配列に保存する

アイデアは、EOF に達するまで (この形式で"string - string") 標準入力から文字列を読み取ることです。次に、文字列を 2 つの文字列に分割し、2 次元配列に保存します。配列は、最初は 2 行 20 列で動的に割り当てられますが、次の文字列を追加するたびに 2 行追加したいと思います (関数expandmat())。これが私のコードです:

また、このコードに意味をなさない箇所があれば、それを修正する方法を教えていただけますか?

これは些細な作業のように思えますが、私は頭がおかしくなりました。

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

0 投票する
4 に答える
434 参照

iphone - オブジェクトを割り当てて初期化し、ViewDidLoad がロードされたときに再度リロードしないようにするにはどうすればよいですか?

ViewControllerViewDidLoadのデリゲート オブジェクトを初期化しましたが、再度ロードすると、値が再度初期化されます。

getObjectandを使用してアクセスしたいデリゲートオブジェクトに、ある種の配列を保存していますsetObjectViewDidLoadデリゲート オブジェクトが呼び出されるたびに再初期化されないようにするにはどうすればよいですか?

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

objective-c - カスタム クラスの初期化の問題 (UIImageView は「-alloc」に応答しない場合があります)

この行に問題があります

問題は「宣言されていないボール」であり、警告:「UIImageView」は「-alloc」に応答しない可能性があり、警告:「-initWithPNGFileName:andGame:andCGRect:」メソッドが見つかりません

メソッドは次のとおりです。

UIImageView を割り当てられない理由と、「-initWithPNGFileName:andGame:andCGRect:」メソッドが見つからない理由がわかりません

ありがとう

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

objective-c - NSStringを割り当てるかどうか!

私はscrollViewDidScrollメソッドからこのコードを実行しています(スクロールすると実行されます!):

これは正常に機能しますが、スクロールのパフォーマンスに影響します(速度が低下するとジャダーが発生します)

私の質問は、allocとreleaseを使い続ける必要がありますか、それともinitWithFormatを使用していくつかの数値をそれなしのテキストに取得する方法はありますか?

0 投票する
0 に答える
232 参照

objective-c - In which case I have to use NSInteger and when to use simple int?

Possible Duplicate:
When to use NSInteger vs int?

I really in a confusion that when I have to use NSInteger and when to use int? When I checked in the forums I could know that NSInteger will make allocation. Is that true? Anything related to the same will be appreciable. Thanks

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

objective-c - initWithX が失敗した場合、alloc はどうなりますか?

MyClass* obj = [[MyClass alloc] initWithX:X]Objective-C で記述することは一般的な方法です。initWithX通常、次のように定義されます。

私の質問は: 初期化が失敗した場合はどうなりますか? 例外をスローしたくないのですが、エラーを示すにはどうすればよいですか? を返すnilと、呼び出し元はポインターを解放できなくなります。

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

iphone - 割り当てられたオブジェクトを返し、関数外で解放できますか?

こんにちは、NSString を使用して簡単な例を書きました。私の実際のプログラムでは、NSString の代わりにカスタム UIView クラスを使用しました。

allocString は 1 つの NSString インスタンスを作成し、その保持カウントは 1 です。自動解放がなければ、インスタンスを返すだけです。

viewDidLoad メソッドでは、変数「name」は allocString メソッドによって返されたオブジェクトを指すだけなので、インスタンスの保持カウントは 1 のままです。

したがって、[name release] は保持カウントを減らします。

これは正しいですか?または、allocString メソッドで自動解放する必要がありますか? ありがとうございました!