如何使用在目标c Void函数中创建的变量?

时间:2010-04-23 17:19:30

标签: iphone objective-c

我试图获取在void函数中生成的lat和long值,并在另一个函数中使用它们。感谢任何帮助。

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{
 float latDeg = newLocation.coordinate.latitude;
 NSLog(@"Lat: %g", latDeg);

 float longDeg = newLocation.coordinate.longitude;
 NSLog(@"Lat: %g", longDeg);
}

我想使用latDeg和longDeg变量。

3 个答案:

答案 0 :(得分:3)

latDeglongDeg声明为您班级中的实例变量。声明实例变量的属性并将其用于变量的每次访问都是可选的,但建议使用。

答案 1 :(得分:0)

如果要在同一个类中重用它们,可以在实现类之后声明它们。例如`@implementation LocationClass float latDeg; float longDeg

  • (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation        fromLocation :( CLLocation *)oldLocation { latDeg = newLocation.coordinate.latitude; NSLog(@“Lat:%g”,latDeg);

    longDeg = newLocation.coordinate.longitude; NSLog(@“Lat:%g”,longDeg); } ` 这就够了。 或者您可以在AppDelegater中声明它们,然后使用它们:

    YourAppDelegate 委托; delegate =(YourAppDelegate )[[UIApplication sharedApplication] delegate]; float currVar = [delegate-> longDeg];

答案 2 :(得分:0)

a)使它们成为全局变量

b)使LocationManager成为您正在使用它的类的属性。现在,您可以在该类中添加两个双属性,您可以在其中保存纬度或经度。

c)使用另一个带有lat和lon的函数扩展你的函数,并将它们写入一个变量,无论你需要它。

我强烈建议使用版本b,因为它不仅是最简单和最干净的版本,而且它是唯一一个在某些时候不太可能伤害OCP的版本。