0
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking
__NSAutoreleaseNoPool(): Object 0x4c70ec0 of class UISegmentedControl autoreleased with no pool in place - just leaking

これは、コンソールで警告として表示されるものです。クラッシュは発生しませんが、メモリ管理の問題のようです。

何が間違っている可能性がありますか?

セグメント化されたコントロールを自動解放していません。

4

2 に答える 2

7

この問題は、マルチスレッドを使用している場合によく発生します。スレッドを使用している場合は、そのスレッドの自動解放プールを作成する必要があります

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

//コード....

[プールリリース];
于 2011-02-28T07:32:35.333 に答える
0

@Martinが言ったように、メインスレッドではないスレッドでUISegmentedControlを使用している場合、それは安全ではありません。

UIKitフレームワークリファレンス-はじめに

注:ほとんどの場合、UIKitクラスはアプリケーションのメインスレッドからのみ使用する必要があります。これは、UIResponderから派生したクラス、またはアプリケーションのユーザーインターフェイスの操作を伴うクラスに特に当てはまります。

于 2011-02-28T08:26:33.393 に答える