1

私はプロパティを持つクラスを持っています

@property (strong,nonatomic) NSString* test1; 

.m ファイル

-(void)doStuff
{
userLocationManager = [[CLLocationManager alloc]]init]; //has been synthesized already
userLocationManager.delegate = self;
userLocationManager.distanceFilter = kCLDistanceFilterNone; 
userLocationManager.desiredAccuracy = kCLLocationAccuracyBest;
[userLocationManager startUpdatingLocation];
NSLog(@"%@",self.test1); //logs (null)
}

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
self.test1 = @"Hello!";
[userLocationManager stopUpdatingLocation];
}

次に、locationmanager などを初期化するクラスがあり、最終的に呼び出して、このメソッド内locationManager:didUpdateLocations.で簡単に実行し、その関数から文字列を割り当てることができるかどうかを確認します。self.test1=@"Hello"別の方法で NSLog self.test1、更新されたかどうかを確認しますが(null)、コンソールで を取得します。locationManager:didUpdateLocations非同期ですか?ありがとう!〜カーペットフィズ

編集:質問をより明確にするために、さらにコードを追加しました。別のコンピューターからコードを物理的にコピーしたため、構文エラーがある場合はご容赦ください。それはうまくコンパイルされます。

4

1 に答える 1

2

クラスが CLLocationManagerDelegate のデリゲートであることを確認してください。

于 2013-06-26T13:37:51.730 に答える