2011-03-05 61 views
0

爲什麼這個CLLocationManager在我的單例中不起作用?我拿這個代碼http://jinru.wordpress.com/2010/08/15/singletons-in-objective-c-an-example-of-cllocationmanager/Singleton LocationManager開始更新?

根本沒有改變他的代碼(所以如果我應該添加一些東西給他的代碼讓我知道)它有史以來第一個單身人士。

- (CLLocationManager *)locationManager { 

    if (locationManager != nil) { 
     return [LocationController sharedInstance].locationManager; 
    } 

    self.locationManager = [LocationController sharedInstance]; 
    [LocationController sharedInstance].locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters; 


    return [LocationController sharedInstance].locationManager; 
} 
  • (無效)viewDidLoad中 { [超級viewDidLoad中];

    // Start the location manager. 
    [LocationController sharedInstance].delegate = self; 
    //[[self locationManager] startUpdatingLocation]; 
    
    [[LocationController sharedInstance].locationManager startUpdatingLocation]; 
    

回答

2

我不太明白你想在你的 - (CLLocationManager *)locationManager方法中實現什麼。但在LocationController.h初始化函數,你應該添加這樣的事情:

- (id)init 
{ 
    self = [super init]; 
    if (self != nil) { 
     self.locationManager = [[[CLLocationManager alloc] init] autorelease]; 
     self.locationManager.delegate = self; 
     self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
    } 
    return self; 
} 

而當你想調用其他控制器的單對象更新的位置,你應該能夠只要致電:

 [[LocationController sharedInstance].locationManager startUpdatingLocation]; 

還記得在控制器中實現委託方法 - (void)locationUpdate:(CLLocation *)位置。

希望它有助於這次,如果我的文章沒有。

0

也許問題是委託。這指向該文件,而不是單身人士。

0

假設- (CLLocationManager *)locationManagerLocationController

self.locationManager = [LocationController sharedInstance]; 

方法使得如你LocationController的一個實例,分配給self.locationManager這是CLLocationManager類型的沒有意義的。