你有一个关于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
的指针?
答案 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;
致以最诚挚的问候,