changeset 3422:ec4db979dddb

Fixed bug #847 Roger Willcocks 2009-10-25 08:45:37 PDT appDidFinishLaunching is triggered before all the setup's complete. The easiest fix is to arrange for another event to be sent when it's really ready, and run SDL_main from there. Ref. http://blog.rightsprite.com/2008/11/iphone-applicationdidfinishlaunching.html SDL-1.3.0-4563/src/video/uikit/SDL_uikitappdelegate.m: - (void)postFinishLaunch { /* run the user's application, passing argc and argv */ int exit_status = SDL_main(forward_argc, forward_argv); /* free the memory we used to hold copies of argc and argv */ int i; for (i=0; i<forward_argc; i++) { free(forward_argv[i]); } free(forward_argv); /* exit, passing the return status from the user's application */ exit(exit_status); } - (void)applicationDidFinishLaunching:(UIApplication *)application { /* Set working directory to resource path */ [[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]]; [self performSelector:@selector(postFinishLaunch) withObject:nil afterDelay:0.0];
author Sam Lantinga <slouken@libsdl.org>
date Mon, 02 Nov 2009 07:55:42 +0000
parents 7bc83a9e09fd
children 45ad54b4d9d6
files src/video/uikit/SDL_uikitappdelegate.m
diffstat 1 files changed, 11 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/video/uikit/SDL_uikitappdelegate.m	Fri Oct 30 05:02:47 2009 +0000
+++ b/src/video/uikit/SDL_uikitappdelegate.m	Mon Nov 02 07:55:42 2009 +0000
@@ -71,11 +71,8 @@
 	return self;
 }
 
-- (void)applicationDidFinishLaunching:(UIApplication *)application {
-			
-	/* Set working directory to resource path */
-	[[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]];
-	
+- (void)postFinishLaunch {
+
 	/* run the user's application, passing argc and argv */
 	int exit_status = SDL_main(forward_argc, forward_argv);
 	
@@ -88,7 +85,15 @@
 		
 	/* exit, passing the return status from the user's application */
 	exit(exit_status);
-		
+}
+
+- (void)applicationDidFinishLaunching:(UIApplication *)application {
+			
+	/* Set working directory to resource path */
+	[[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]];
+	
+	[self performSelector:@selector(postFinishLaunch) withObject:nil
+afterDelay:0.0];
 }
 
 - (void)applicationWillTerminate:(UIApplication *)application {