問題タブ [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.
objective-c - オブジェクトの配列のメモリ割り当て - 私の理解は有効ですか?
配列内のオブジェクトのメモリ割り当てに関して質問があります。オブジェクトの配列を作成しようとしていますが、コンパイル時に必要なオブジェクトの数を知る方法がないため、必要以上のメモリを予約したくありません。
私がやりたいのは、必要に応じてメモリを割り当てることです。これを行う方法は、ユーザーが「追加」ボタンをクリックすると、配列が1つの追加オブジェクトによって増加し、新しいオブジェクトに必要なメモリが割り当てられることです。
Objective C についての私の初心者の理解 (私は約 20 年前にプロのプログラマーであり、最近再びコードを書き始めたばかりです) で、次のコード セグメントを思いつきました。
まず、オブジェクトを宣言しました。
次に、ユーザーが [追加] ボタンをクリックすると、割り当てコードを使用してメソッドが実行されます (注: 変数 i は値 1 から始まり、[追加] ボタンがクリックされるたびに増加します)。
したがって、1000 個の配列オブジェクトすべてをすぐに割り当てるのではなく、実際に必要なオブジェクトにのみメモリを割り当てることを望んでいます。
これを正しく解釈していますか?つまり、宣言に記載されている配列要素の数は、その時点で割り当てられているメモリの量ではなく、配列要素の最大可能数であるという私の解釈は正しいですか? これが正しい場合、理論的には次の宣言になります。
宣言よりも多くのメモリをプルしません:
誰かが私がこのプロセスを正しく理解していることを確認できますか?これが頭の中で混乱している場合は教えてください。:)
ありがとう!
iphone - 静的メソッドの目的 c - 初期化 1 回
一度だけ初期化する必要があり、最初に計算された値を返すクラスが必要です。正しいアプローチの下にありますか?
ios - iOS - アプリがクラッシュする Garbagecollector のせい?
私のチームと私はクイズ アプリに取り組んでおり、1 つのビューがあり、ラベルとボタンのテキストをリロードするだけです。クイズを開始すると、データベースから質問と回答をロードする 2 つのループがあります。これらのループでは、.h ファイルで宣言されているオブジェクトを初期化します。obj = [[class alloc] initwith:stuff]; 2 つのループがあるメソッドを 6 回目に呼び出すまでは、完全に機能します。最初のループでクラッシュすることもあれば、2 番目のループでクラッシュすることもあります。ここで奇妙な点は、「もう一度再生」ボタンでメソッドを 2 回呼び出すと、3 回目で既にクラッシュすることです (6 回呼び出されたメソッド = クラッシュ)。それで。プロジェクトのクリーンアップを試み、iPad とシミュレーターで実行しました。無効。エラーメッセージは、配列が
現時点ではコードニペットを提供することはできませんが、最も簡単な方法は、ユーザーが「もう一度再生」ボタンを押したときにアプリをリセットすることです。これを行う簡単な方法はありますか?アプリを閉じて、スプラッシュスクリーンで再度開くだけでも問題ありません。
今すぐ提案できない場合は、明日コードニペットを追加します
前もって感謝します
編集: SIGABRT これはエラー メッセージです: SoccerQuiz[1563:f803] * キャッチされない例外 'NSRangeException' が原因でアプリを終了しています。 : (0x159e022 0x172fcd6 0x158ad88 0x4719 0x3455 0x159fe99 0xe214e 0xe20e6 0x188ade 0x188fa7 0x188266 0x1073c0 0x1075e6 0xeddc4 0xe1634 0x1488ef5 0x1572195 0x14d6ff2 0x14d58da 0x14d4d84 0x14d4c9b 0x14877d8 0x148788a 0xdf626 0x20ed 0x2055) terminate called throwing an exception(lldb)
私のコード:
}
objective-c - 目標 C: ループ内の切り替え - (潜在的な) メモリ リークを回避する方法
最初に NSObject の「値」が宣言され、次に「値」内の switch ステートメントが実際に作成される for ループがあります。「値」は、NSNumber、NSDate、NSData、NSString、または nil にすることができます。これはコードです:
今、「価値」を解放する方法がわかりません。これは私が試したものと、対応するXcode 4の「アナライザー」メッセージです:
- リリースなし - >「潜在的なリーク」
- [value autorelease] 各 case ステートメント内の alloc/init の後 -> 「オブジェクトが autorelease を何度も送信しました」
- [value autorelease] 最後の使用の直前 -> 「オブジェクトが autorelease を送信した回数が多すぎます」
- [値の解放] 最後の使用後 -> 「この時点で呼び出し元が所有していないオブジェクトの参照カウントの誤ったデクリメント」
objective-c - ObjectiveCtypedef列挙型メモリ管理
列挙型を処理するとき、メモリを管理する必要がありますか?これは、列挙型を宣言した場所です。これは別の.hファイルにありますこれは私が変数を宣言しようとする場所です
その後私はそのようなことをしなければなりませんか
objective-c - ARC では、[[X alloc] initWith..] と [X xWith…] に違いはありますか?
たとえば、NSMutableArray:
手動参照カウントでは、2 行目で自動解放されたオブジェクトが返されました。ARC を有効にすると、2 番目は __autoreleasing オブジェクトを返し、もう 1 つは返しませんか? もしあれば、違いは何ですか?
初期化しようとしているクラスが、ARC に変換されたカスタム クラスであり、変換によって初期化子から autorelease メッセージが削除された場合:
b1 と b2 に違いはありますか? a1 と a2 の作成方法と違いはありますか?
ios - NSMutable 配列は割り当てられず、nil のままです
XML パーサーが、 masterCodeListというデリゲートの NSMutable 配列を割り当てようとしています。次のコードから、これが失敗することがわかります。(私はまったくの初心者です。)
the init of the mutable array did NOT work
メッセージが毎回届きます。dataController ヘッダーをインポートしています。
他にエラー メッセージは表示されません。パーサーは正常に解析しており、アプリはコンテンツなしでスムーズに実行されています。
前もって感謝します。
objective-c - unsigned char 割り当てと無料発行
私は 1 つの奇妙なことについて混乱しています....私は unsigned char 配列を持っています.... calloc を使用してそれを割り当て、その中にいくつかのバイトデータを記録します...しかし、この unsigned char を解放して再度割り当てると、前回割り当てられたメモリ内の同じアドレスが予約されていることがわかります。理由はわかります....しかし、2回目に書き込もうとしているデータが書き込まれない理由がわかりません...最初に書き込まれたデータが書き込まれています....誰か私にこれを説明してもらえますか? ??????
unsigned char *rawData = (unsigned char*) calloc(height * width * 4, sizeof(unsigned char));
これが私がそれを割り当てる方法です....実際に私の問題は、この割り当てのために2秒ごとに1回発生するため、メモリリークが発生することです...しかし、割り当てられたメモリセクターを解放しようとすると、上記のことが起こります... .:(
誰かが私を助けることができれば....私はとてもうれしいです...ここにコードがあります...
このコードには free(rawData) する部分がありません。このメソッド内で解放できないため、rawData をグローバルに定義し、このメソッドを呼び出した後に解放しようとしましたが、何も興味深いことはありません....
誰かが私を助けることができれば....私はとてもうれしいです...
iphone - 割り当てられたメモリが多すぎる
アプリを実行しようとしましたが、メモリ割り当てで多くのクラッシュが発生しました。次に、すべてのコードを削減してクリーンアップしようとすると、この e が表示されます
なぜ私は得る:
101 行目に割り当てられ、「livello」に格納されたオブジェクトの潜在的なリーク
}
objective-c - 新しいオブジェクティブ C オブジェクトを保持プロパティに割り当てますか?
まったく基本的な質問で申し訳ありませんが、保持されている合成プロパティがある場合。
メモリリークが発生しますか?
そうする必要があると考えるのは正しいですか
バランスをとるために?それはばかげているように見えるからです。