我有這個問題: 這裏是我的appDelegate文件的一部分,我創建了一個「performSelectorInBackground」方法。iPhone performSelectorInBackground
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self addSplash];
[self getLocation];
[self performSelectorInBackground:@selector(backgroundOp) withObject:nil];
return YES;
}
首先我添加一些啓動畫面,我得到一個位置和調用背景的方法。 這是後臺方法內容:
- (void) backgroundOp
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self createEditableCopyOfDatabaseIfNeeded];
[self initTempData];
[self initApp];
[self checkDataVersion];
}
[self setAppStrings];
[self performSelectorOnMainThread:@selector(resultOp) withObject:nil waitUntilDone:YES];
[pool release];
}
我下載一些數據,檢查數據,應用程序安裝字符串和主線程方法調用創建一個標籤欄控制器代碼在這裏的版本:
- (void) resultOp
{
tabBarController.delegate = self;
[self.window addSubview:tabBarController.view];
[self addTabBarArrow];
[self.window makeKeyAndVisible];
[self removeSplash];
}
這裏我創建一個標籤欄控制器並刪除啓動畫面。然後啓動我的firstViewController。
問題是,在我的firstViewController中,我顯示了當前位置,但它是錯誤的。有時是正確的,但往往是錯誤的。 問題在哪裏?有沒有任何選項如何檢查後臺線程是否結束?或者其他解決方案爲我的問題(我只需要:顯示與活動指示燈和一些消息飛濺(此消息更改方法,如初始化,獲取位置等),然後我需要獲取位置,刪除飛濺和顯示firstViewController)。 ..感謝了很多
編輯:這裏是位置代碼:
- (void) getLocation
{
splashScreenController.splashLabel.text = @"Localization ...";
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kDistanceFilter;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
[locationManager startUpdatingLocation];
}
你是不是出用於接收和評估的位置,但只是沒有連接到您的問題在所有的代碼。 – Till