4

ネイティブ iOS メソッドがサードパーティ ライブラリから関数を呼び出しているように見える複数のクラッシュが発生しています。次に例を示します。

Thread: Unknown Name (Crashed)
0     libsystem_kernel.dylib                0x33222350 __pthread_kill + 8 + 8
1     libsystem_c.dylib                     0x3500f973 abort + 95 + 94
2     libsystem_c.dylib                     0x34ff04d1 basename + 1
3     FireChat                              0x00036489 -[OTOverlayButton drawRect:] + 1
4     Foundation                            0x37a4a5a9 -[NSDictionary(NSKeyValueCoding) valueForKey:] + 33 + 32
5     FireChat                              0x709d -[NetworkModel getUserForUid:] (NetworkModel.m:150)
6     FireChat                              0x0001c42f -[OpenTokController session:didReceiveStream:] (OpenTokController.m:258)
7     libdispatch.dylib                     0x32da011f _dispatch_call_block_and_release + 11 + 10
8     libdispatch.dylib                     0x32d9f4b7 _dispatch_client_callout + 23 + 22
9     libdispatch.dylib                     0x32da41bd _dispatch_main_queue_callback_4CF$VARIANT$mp + 225 + 224
10   CoreFoundation                         0x37dbbf3b __CFRunLoopRun + 1291 + 1290
11   CoreFoundation                         0x37d2eebd CFRunLoopRunSpecific + 357 + 356
12   CoreFoundation                         0x37d2ed49 CFRunLoopRunInMode + 105 + 104
13   GraphicsServices                       0x358e22eb GSEventRunModal + 75 + 74
14   UIKit                                  0x3a1b42f9 UIApplicationMain + 1121 + 1120
15   FireChat                               0x43b3 main (main.m:8)

私には、メソッドがサードパーティのライブラリから[NSDictionary valueForKey:]呼び出しているように見えます。[OTOverlayButton drawRect:]これはあり得ないことです -- クラッシュ レポートの読み方が間違っているのでしょうか?

[OTOverlayButton drawRect:]私のコードのどこにも呼び出されていません。ディクショナリには、サードパーティ ライブラリのオブジェクトへのポインタを含む (my) オブジェクトが含まれていることに注意してください。

ライブラリベンダーと私はどちらも当惑しています。

ありがとう。

4

1 に答える 1

2

このクラッシュの原因はperformSelector:、構造体を返すメソッドの呼び出しによるメモリの破損だったと思います。詳細については、次のブログ投稿を参照してください。

なぜ performSelector が思ったより危険なのか

于 2013-02-09T00:17:17.293 に答える