2012-02-29 5 views
0

私は少し困惑しています。locationServicesEnabled == [CLLocationMagager alloc] initはnilを返します

if([CLLocationManager locationServicesEnabled]) 
    { 
      if(self.locationManager == nil) 
      { 
        self.locationManager = [[CLLocationManager alloc] init]; 
      } 
      // do something with the location manager... 
    } 

self.locationManagerが0x0に設定されている次のコードを考えてみましょう。両方の選択肢の条件が満たされている。私はself.locationManager = ...でブレークポイントを使ってこれをチェックし、その行はアプリケーションの起動時に呼び出されます。興味深いことに、同じビューコントローラ内のMKMapViewは、ユーザーの場所を表示できます。任意の洞察力のための

おかげで、 クリス

+0

あなたは「アプリの各スタート時に」と言います。あなたのアプリが起動したときにオブジェクトが無限になることを期待しているものではないでしょうか? – onnoweb

+0

locationManagerプロパティはどのように定義しますか? #import をインポートして、そのフレームワークを追加しているとします。 – LocoMike

+0

@onnoweb: 'self.locationManager'は' init'メソッドでnilで初期化されます。後で上記のコードが 'viewDidLoad'によって呼び出されます。 – Chris

答えて

1

は問題はフレームワークは、各ロケーションマネージャのインスタンスを保持していないので、私は

@property(strong, nonatomic) CLLocationManager* locationManager; 
を宣言している必要があります

@property(weak, nonatomic) CLLocationManager* locationManager; 

としてlocationManagerの宣言でした代わりに

、これは完全に動作します。

LocoMikeのおかげで正しい方向に向かうことができました。

+0

よろしくお願いします! :D – LocoMike

関連する問題