問題タブ [nsautoreleasepool]
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.
iphone - iPhone:カスタム自動リリースプールでクラッシュ
HTTPリクエストで画像を投稿しようとすると、アプリがクラッシュします。サーバーに画像をアップロードしようとしています。[pool release
クラッシュは]メッセージでトラップされるため、クラッシュは自動解放プールに関連して表示されます。
クラッシュレポートは次のとおりです。
クラッシュレポートには、次のコードの最後の行がクラッシュのポイントであると記載されています。(行番号266)
クラッシュの原因がわかりません。
iphone - iphone iOS4 壊れるアプリ
1 年以上前のリリース以来、正常に動作しているアプリケーションがあります。
私はもともとiPhone iOS 2.2.1で開発し、テストして3.2まで問題なく販売し続けました。
現在、iOS4 で起動に失敗しています。
アプリは UIPickerView に非標準サイズを使用します (それが問題だとは思いませんが、コンソール出力にいくつかの苦情が表示されるので言及してください)。また、以前に報告されていないNSAutoreleasePool
警告も表示されます。
しかし、犯人はインターフェイスを新しいiPhoneの画面解像度にサイズ変更するときのようです(少なくともコンソールから得たもの)
私は自分でいくつかの調査を行う必要があることを知っていますが、iOS4 はほとんどリリースされておらず、Android 用の最初のアプリの学習と開発に非常に夢中になっています (そのため、この特定のコードをテストしていません。誰かが情報を持っているかどうか、またはすでにそれに遭遇したかどうかを確認するために、このあたりで尋ねても害はないと思いました.
まず、これは XCODE 3.2.3 と BASE SDK 3.2 でビルドして実行したときのコンソール出力で、問題なく実行されます。
2010-06-22 23:25:55.619 metalsandmaterials[82956:207] ******** アクセシビリティ ステータスが変更されました: On 2010-06-22 23:25:55.710 metalsandmaterials[82956:207] ****** **** xxxxxxxxx の AX を読み込んでいます
しかし、iOS4 で実行しようとすると、次のような美しさが得られます。
2010-06-22 23:15:52.488 metalsandmaterials[80149:207] ******** アクセシビリティ ステータスが変更されました: On
2010-06-22 23:15:52.546 metalsandmaterials[80149:207] ****** **** Loading AX for: XXXXXXX ************
2010-06-22 23:15:53.003 metalsandmaterials[80149:207] * -[NSAutoreleasePool release]: このプールは既に解放されています、排出しないでください(ダブルリリース)。
2010-06-22 23:15:53.005 metalsandmaterials[80149:207] * -[NSAutoreleasePool リリース]: このプールは既に解放されています。排出しないでください (二重解放)。
2010-06-22 23:15:53.008 metalsandmaterials[80149:207] -[UIPickerView setFrame:]: 無効な高さの値 50.0 が 162.0 に固定されました
ここだ!【UIIageViewスケール】
2010-06-22 23:15:53.011 metalsandmaterials[80149:207] -[UIImageView スケール]: 認識されないセレクターがインスタンス 0x5ac47a0 に送信されました
2010-06-22 23:15:53.013 metalsandmaterials[80149:207]キャッチされない例外 'NSInvalidArgumentException' へ、理由: '-[UIImageView スケール]: 認識されないセレクターがインスタンス 0x5ac47a0 に送信されました'Call stack at first throw:
(
0 CoreFoundation 0x025f5919 exceptionPreprocess + 185
1 libobjc.A.dylib 0x027435de objc_exception_throw + 47
2 CoreFoundation 0x025f742b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x02567116 ___forwarding_ + 966
4 CoreFoundation 0x02566cd2 _CF_forwarding_prep_0 + 50
5 UIKit 0x0039a8e3 -[UIImageView setImage:] + 250
6 UIKit 0x0039b63e -[UIImageView initWithImage:] + 161
7 UIKit 0x05f286ce -[UIImageViewAccessibility(SafeCategory) initWithImage:] + 70
8 metalsandmaterials 0x0000bf09 -[TVCResults init] + 1841
9 metalsandmaterials 0x00002b8c -[UIVCalcHolder init] + 258
10 metalsandmaterials 0x00002758 -[CalcTestAppDelegate applicationDidFinishLaunching:] + 649
11 UIKit 0x002d759c -[ UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1252
12 UIKit 0x002d99a1 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 346
13 UIKit 0x002e3452 -[UIApplication handleEvent:withNewEvent:] + 1958
14 UIKit 0x002dc074 -[UIApplication sendEvent:] + 71
15 UIKit 0x002e0ac4 _UIApplicationHandleEvent + 7495
16 GraphicsServices 0x02de1afa PurpleEventCallback + 1578
17 CoreFoundation 0x025d6dc4 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 52
18 CoreFoundation 0x02537737 __CFRunLoopDoSource1 + 215
19 CoreFoundation 0x025349c3 __CFRunLoopRun + 979
20 CoreFoundation 0x02534280 CFRunLoopRunSpecific + 208
21 CoreFoundation 0x025341a1 CFRunLoopRunInMode + 97
22 UIKit 0x002d9226 -[UIApplication _run] + 625
23 UIKit 0x002e4b58 UIApplicationMain + 1160
24 metalsandmaterials 0x000024ac main + 230
25 metalsandmaterials 0x000023bd start + 53
26 ??? 0x00000001 0x0 + 1
) 'NSException' のインスタンスをスローした後に呼び出された終了
プログラムはシグナル "SIGABRT" を受け取りました。
殺す
_
このscale
メソッドは uiimageview にとって新しいものですか? なぜうまくいかないのですか?誰かがすでにこれに遭遇しましたか?
どんな助けも非常に高く評価されています
よろしく
デビッド
iphone - 自動解放コンテキストを超えたオブジェクトの使用
Autoreleaseプールに関するAppleデベロッパのサイト記事の「GuaranteeingtheFoundationOwnershipPolicy」の下 http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html#//apple_ref/doc / uid / 20000047-997594、彼らは自動解放プールを超えてオブジェクトの存続期間を延長することについて話します。
誰かが私にこの概念を使用できる状況を教えてもらえますか?
objective-c - Objective-C の NSAutoreleasePool 内のオブジェクト
NSAutoreleasePool 内で解放するようにマークされているオブジェクトを知る方法はありますか。
iphone - -[CALayer preserve]: 割り当て解除されたインスタンスに送信されたメッセージ
私はiPhoneアプリを開発しています.NSZombieEnabledをオンにすると、エラーで定期的にクラッシュします:
ビューコントローラーでビューをプッシュまたはポップすると、常に発生します。時々、前にこのエラーがあります:
どういう意味ですか?誰でも手がかりを持っているか、この問題に遭遇しましたか?
助けてくれてどうもありがとう!
ロマン
iphone - iPhoneでのNSAutoreleasePoolの問題
最初のビューにボタンがある小さなiPhoneアプリがあります。このボタンを選択すると、画像が表示されている新しいビューが読み込まれます。私は現在、次のコードを使用して、ユーザーがアプリケーションの制御を継続できるようにしながら、別のスレッドでオンラインソースから画像をロードしています。
これは、新しいビューのinitの次のコード行から呼び出されます。
これで問題なく動作しますが、新しいビューを閉じてから、新しいビューをすばやく連続して(または場合によってはその直後に)再度ロードすると、従来のEXC_BAD_ACCESSで爆破されます。これはスレッドプール内のコードが原因であると確信していますが、なぜこれが発生しているのか誰かがわかりますか?
ありがとう
objective-c - NSAutoreleasePool でスレッド メソッドから戻った後の NSRunLoop でのエラー
NSAutoreleasePool を設定したスレッド メソッドから戻ると、EXC_BAD_ACCESS エラーが発生します。失敗の場所は、NSRunLoop への呼び出しにあります。主にクラス(接続クラスと呼びましょう)とそのデリゲートで構成されるサードパーティライブラリをラップして、クライアントクラスに対して非同期ではなく同期的に動作するようにしようとしています。NFCConnection と呼ばれるラッピング クラスはデリゲート プロトコルに準拠し、NFCConnection のコンストラクターで Connection の setDelegate メソッドに渡されます。
新しいスレッドを作成する方法は次のとおりです。
スレッド メソッド doSomethingImportant は次のようになります。
Connection の somethingImportant を呼び出すと、デリゲート メソッドの 1 つがメイン スレッドで呼び出されます。これらのコールバック メソッドのそれぞれで、変数 callBackMethod を NO に設定し、methodA の while ループを終了させます。エラーは、doSomethingImportant が返された後、デリゲート メソッドの 1 つが呼び出される前に発生します。EXC_BAD_ACCESS エラーは、NSRunLoop の呼び出しで発生します。スタック トレースの一部を次に示します。
これで、エラーの発生をまったく防ぐことができ、doSomethingImportant で自動解放プールの設定を怠ると、ラップされた API が同期的に動作するように見えます。しかし、それを行うと、コンソールに次のように出力されます。
上記のメッセージは、Connection クラスのインスタンスで何かが解放されていないことが原因ですか? 私は NSDate を作成していますが、リリースする必要があるインスタンスではありません。NSTimer と同じことです。
ここで NSAutoreleasePool を設定して正しいことをしようとしていますが、何か間違っているようです。しかし、私はそれが何であるかについての手がかりを持っていません。どんな助けでも大歓迎です!
リッチ
objective-c - 自動解放プール内のオブジェクトの数
特定のNSAutoreleasePoolに存在するオブジェクトの数を照会する方法はありますか?
これは私にとって非常に重要です。私のゲームにはいくつかのループがあり、自動解放されたオブジェクトをどれだけ効果的に自動解放しているかを知る必要があるからです。
objective-c - NSAutoreleasePool
自動解放プールを空にしました。警告*** attempt to pop an unknown autorelease pool
は、自動解放プールがさまざまな方法で作成および排出されたことを意味します-それは問題ありません。
しかし、それはそのようなプールが排出されていないことを意味しますか?解決策はありますか?
iphone - NSArrayへのアクセスが非常に遅くなる原因は何ですか?
昔のデモシーンの低解像度プラズマ効果をシミュレートするiPhoneアプリのグラフィック効果を作成しています。画面には600個の正方形があり、可能な限り高速に更新されています。私はCoreGraphicsを使用しているので(今のところ)、フリーズすることなく非常に一定の11FPSを取得できます--
しかし、単純なNSArrayルックアップを1つ追加しようとすると、iPhoneとシミュレーターが数秒ごとに数秒間フリーズします。私はこれを機器で実行しましたが、リークがあると言われています-リークはNSAutoReleasePoolに関係していますが、それは実際には役に立ちません。(私はすべての更新フレームの最初にNSAutoReleasePoolを作成し、最後にプールを排出しています。)
排除の過程で、速度低下の原因となっている1行に絞り込むことができました。この行は、フレームが更新されるたびに600個のブロックスプライトごとに発生します。
...ここで、paletteはスプライトのNSArrayプロパティであり、作成したUIColorオブジェクトのリストが含まれています。このUIColorオブジェクトの配列は、アプリの起動時に1回だけ作成され、すべてのスプライトが同じ配列を使用します。
誰かアイデアはありますか?