获取指向另一个对象的成员的指针或引用

时间:2010-01-25 18:07:22

标签: iphone objective-c cocoa

你有一个关于objective-c,cocoa& amp的新手问题苹果手机。我在我的应用程序委托applicationDidFinishLaunching:application:中声明了mapView,它是MKMapView类的实例/指针。 mapView是我的申请代表的成员。

在viewDidLoad中的视图控制器中:我使用以下内容获取应用程序委托的实例:

appDelegate = [[UIApplication sharedApplication] delegate];

我的视图控制器还有MKMapView * mapView作为成员。在viewDidLoad中:我尝试以这种方式设置它:

mapView = [appDelegate mapView]; 

但似乎我无法获得实际mapView的指针或“引用”,因为当我尝试[mapView setRegion:region animated:YES];时它不起作用。 [[appDelegate mapView] setRegion:region animated:YES];如何运作。

所以问题是如何从我的视图控制器中获取指向appDelegates mapView的指针?

2 个答案:

答案 0 :(得分:1)

听起来你正在缓存你的app delegate的mapView成员。但是,当您执行此缓存时,它可能尚未实例化(在此位置设置断点将向您显示)。

您的问题的答案是:[appDelegate mapView]返回指向appView成员的指针。但是,如果该成员为零,那就是你要回来的。

答案 1 :(得分:-1)

您没有保留appDelegate。如果您创建了这样的委托:

@property (retain) id appDelegate;

然后你必须实际调用它来保留它:

[self setAppDelegate:[[UIAppliation sharedApplication] delegate]];

更好的是,在声明中使用assign:

@property (assign) id appDelegate;

致以最诚挚的问候,