0

次のように実行するようにアプリをセットアップしました。

- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:
                         [[UIScreen mainScreen] bounds]];

    UIImagePickerController* picker = [[UIImagePickerController alloc] init];

    self.viewController = picker;
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

画像ピッカーが表示されたら、たとえば「カメラロール」を選択します。その後、戻るボタン (「写真」というタイトル) を押します。アプリがクラッシュし、EXC_BAD_ACCESS エラーが発生します。ゾンビ オブジェクトを有効にすると、次のログで "EXC_ARM_BREAKPOINT (サブコード = 0xdefe)" エラーが発生します。また:

[UIView willRemoveSubview:]: message sent to deallocated instance 0x2088ea20

または、画像の選択を続行する場合:

-[PLImageScrollView willRemoveSubview:]: message sent to deallocated instance 0x1d82c910

一方、新しいプロジェクトを作成し、記述されたコードのみを AppDelegate 内に配置すると、コードは正常に機能し、エラーは発生しません。

今、私は新しいプロジェクトを開始しています。何が問題なのかを調べるために、以前のプロジェクトから何かをコピーします。これらのエラーが発生する理由を誰かが知っている場合は、考えを共有してください。

4

2 に答える 2

1

私は何が問題なのかを見つけました。AppDelegate は、(理由は不明ですが) deallocメソッドを実装した独自のカスタム UIView カテゴリを間接的にインポートしました。

すべてのビューは、事実上、適切に割り当てを解除できませんでした。そのカテゴリからその dealloc メソッドを削除したところ、すべて問題ありませんでした。

于 2013-06-28T14:36:14.633 に答える