Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 获取指向另一个对象成员的指针或引用_Iphone_Objective C_Cocoa - Fatal编程技术网

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

Iphone 获取指向另一个对象成员的指针或引用,iphone,objective-c,cocoa,Iphone,Objective C,Cocoa,您好,objective-c、cocoa和iPhone出现新手问题。我已经在我的应用程序中声明了mapView委托ApplicationIDFinishLaunching:application:它是MKMapView类的实例/指针。mapView是我的应用程序委托的成员 在viewDidLoad中的我的视图控制器中:我使用以下内容获取我的应用程序委托的实例: appDelegate = [[UIApplication sharedApplication] delegate]; “我的视图控制

您好,objective-c、cocoa和iPhone出现新手问题。我已经在我的应用程序中声明了mapView委托ApplicationIDFinishLaunching:application:它是MKMapView类的实例/指针。mapView是我的应用程序委托的成员

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

appDelegate = [[UIApplication sharedApplication] delegate];
“我的视图控制器”还拥有MKMapView*mapView作为成员。在viewDidLoad中:我尝试这样设置:

mapView = [appDelegate mapView]; 
但我似乎无法获得指向实际mapView的指针或引用,因为当我尝试[mapView setRegion:region animated:YES]时;它不起作用。How ever[[appDelegate mapView]设置区域:区域动画:是];确实有效


因此,问题是如何从视图控制器获取指向appDelegate mapView的指针?

您没有保留appDelegate。如果您是这样创建代理的:

@property (retain) id appDelegate;
然后您必须实际调用set以保留它:

[self setAppDelegate:[[UIAppliation sharedApplication] delegate]];
最好在声明中使用assign:

@property (assign) id appDelegate;

致以最诚挚的问候,

听起来您正在缓存应用程序代理的mapView成员。但是,在您执行此缓存时,它可能尚未实例化。在该位置设置断点将向您揭示这一点


您的问题的答案是:[appDelegate mapView]返回指向appView成员的指针。但是,如果该成员为零,则您将得到回报。

我无法想象这就是问题所在。是的。很抱歉误读了这个问题。谢谢你的否决票。你是个甜心-我将mapView的指定移动到ViewWillDisplay:animated:并且它现在工作得很好。此外,我还按照Matt Long的建议创建了视图控制器的appDelegate和mapView属性。如果没有它们,就不要尝试,因为这听起来肯定像是在创建地图视图之前加载了视图。