0

自分の被告人をまったく呼ばせられないようです。ブレークポイントを使用すると、最初のようなものが呼び出されているようには見えません。

これは私が私のmain.mに持っているものです

int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegatename");
[pool release];
return retVal;
}
4

3 に答える 3

2

AppDelegateあなたが とMyAppDelegateで定義されているMyAppDelegate.hとしましょうMyAppDelegate.m

これを試してください:

#import <UIKit/UIKit.h>
#import "MyAppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool
    {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([MyAppDelegate class]));
    }
}

編集: これは ARC 対応アプリの当然のことです。ARC を使用していない場合は、それを unsing することを検討してください。ARC以外のアプローチを主張する場合は、行を置き換えてください:

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegatename");

int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([MyAppDelegate class]));

どちらの場合もMyAppDelegate、アプリケーション デリゲート クラスの実際の名前に置き換える必要があります。

EDIT2:

追加のコマンドによると、main.m は次のようになります。

#import <UIKit/UIKit.h>
#import "Radio99AppDelegate.h"

int main(int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([Radio99AppDelegate class]));
    [pool release];
    return retVal;
}

radio99AppDelegate を使用しているのか、Radio99AppDelegate を使用しているのかはわかりません。後者は「標準」です。これが新しいプロジェクトである場合は、ARC に「翻訳」することを検討するのが賢明です。メモリ管理の煩わしさが大幅に軽減されます。

于 2013-02-28T18:27:24.677 に答える
1
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
于 2013-02-28T18:27:45.497 に答える
0

レガシー アプリを iOS 9.2 に移行していて、この問題に遭遇しました。私のメイン メソッドでは、UIApplicationMain の delegateClassName パラメータだけでなく、principalClassName パラメータとして AppDelegate のクラス名を渡す必要がありました。

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, NSStringFromClass([AppDelegate class]), NSStringFromClass([AppDelegate class]));
    }
}
于 2016-03-07T05:31:06.500 に答える