2013-03-15 9 views
0

- 나는 다른 모든 기본 통화 중 내 appdelegate.m이있다 : -/알레그로 5

@implementation AppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    [self.window makeKeyAndVisible]; 
    NSLog(@"Launched"); 
    return YES; 
} 
- 내 main.mm은 다음과 같다 : -

#import <UIKit/UIKit.h> 

#import "AppDelegate.h" 
#include <allegro5/allegro.h> 
ALLEGRO_DISPLAY *Display; 

int main(int argc, char *argv[]) 
{ 
    al_init(); 
    al_set_new_display_option(ALLEGRO_SUPPORTED_ORIENTATIONS, 
          ALLEGRO_DISPLAY_ORIENTATION_LANDSCAPE,ALLEGRO_REQUIRE); 
    Display = al_create_display(960, 640); 
    printf("%d, %d", al_get_display_width(Display),     
        al_get_display_height(Display)); 

    return 0; 
} 

은 곧 내가 내 프로젝트에 allegro.h는 모든 필요한 라이브러리/프레임 워크를 포함 al_init 전화로() 주요 내부 프로그램은 인쇄 "출시"를 중지합니다. AppDelegate가 완전히 무시되고있는 것처럼 보입니다. 누구나 어떤 조언을 가지고 ??? 대신 정수 반환 값을 설정해야 0을 반환

+0

override - (void) applicationDidBecomeActive : AppDelegate의 응용 프로그램 (UIApplication *)에 응용 프로그램이 있고 거기에 NSLog가 있는지 확인합니다. 그런 다음 인쇄물을 디버깅 할 경우 App Delegate로 이동하는 것을 알 수 있습니다. – ApolloSoftware

+0

당신도 볼 수 있습니다 - (void) applicationWillEnterForeground : (UIApplication *) application – ApolloSoftware

답변

0

:

int retVal = UIApplicationMain(argc, argv, nil, nil); 
    return retVal; 

또는 작동 할 수

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

.

+0

나는 UIApplicationMain (argc, argv, nil, NSStringFromClass ([AppDelegate class])); /// 응용 프로그램이 컴파일되지만 이것을 출력으로 제공합니다. /// --- /// *** 어설 션 오류 void UIApplicationInstantiateSingleton (Class)(),/SourceCache/UIKit_Sim/UIKit-2380.17/UIApplication.m : 2037 *** 캐치되지 않은 예외로 인해 응용 프로그램 종료
'NSInternalInconsistencyException', 이유 : 'UIApplication 인스턴스가 하나만있을 수 있습니다.' –

+0

첫 번째 UIApplicationMain (argc, argv, nil, nil); 다른 결과를 내는가? – ApolloSoftware

+0

아니요 : C –

0

Allegro 프로그램은 소스 코드 수준에서 크로스 플랫폼을위한 프로그램입니다. 따라서 Allegro는 이미이를 수행하므로 AppDelegate를 제공 ​​할 필요가 없습니다. OS 이벤트는 교차 플랫폼 방식으로 대응할 수있는 Allegro 이벤트로 변환됩니다.

자신 만의 AppDelegate가 필요한 경우에는 Allegro의 소스 코드를 편집해야합니다.

0

Allegro 5.1에는 rootViewController 세트가 없습니다. 알레그로 소스 코드를 수정하여 모든 기능이 iOS 6.0/6.1에서 작동합니다.

shouldAutorotate 및 supportedInterfaceOrientations ViewController.m 에 방법을 첨가 window.rootViewController = VC를 첨가; "static void iphone_add_screen (UIScreen * screen)"- allegroAppDelegate.m 아래의 방법. 그런 다음 알레그로를 다시 컴파일했습니다.

도움 주셔서 감사합니다.