Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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 控件可能会到达非void函数的末尾_Iphone_Objective C_Xcode_Ios5 - Fatal编程技术网

Iphone 控件可能会到达非void函数的末尾

Iphone 控件可能会到达非void函数的末尾,iphone,objective-c,xcode,ios5,Iphone,Objective C,Xcode,Ios5,我不知道为什么xcode会显示此消息,请看一下我的代码: - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ if (annotation==self.mapView.userLocation) { return nil; NSString *pinID = @"Salvar";

我不知道为什么xcode会显示此消息,请看一下我的代码:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{

    if (annotation==self.mapView.userLocation) {
        return nil;

        NSString *pinID = @"Salvar";
        MKPinAnnotationView *view = (MKPinAnnotationView*)
        [self.mapView dequeueReusableAnnotationViewWithIdentifier:pinID];

        if (view==nil) {
            view = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:pinID];

            view.canShowCallout = YES;
            view.animatesDrop = YES;

        }
        return view;
    }
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释{
if(annotation==self.mapView.userLocation){
返回零;
NSString*pinID=@“Salvar”;
MKPinAnnotationView*视图=(MKPinAnnotationView*)
[self.mapView dequeueReusableAnnotationViewWithIdentifier:pinID];
如果(视图==nil){
视图=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:pinID];
view.canShowCallout=是;
view.animatesDrop=是;
}
返回视图;
}
}

如果
注释=self.mapView.userLocation

若要修复,请将else块添加到第一个条件,或在最后一个close curly之前无条件返回某个内容

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{

    if (annotation==self.mapView.userLocation) {
        // the code that you have already here
    } else {
        return nil; // or whatever you would return if annotation!= userLocation
    }
    // or, instead of the else above...
    return nil;
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释{
if(annotation==self.mapView.userLocation){
//你已经在这里的代码
}否则{
返回nil;//或者如果annotation!=userLocation,则返回任何内容
}
//或者,代替上面的其他内容。。。
返回零;
}

是的,如果在这种情况下它应该返回这样的值。讨论指针时,正确的归零方法是“nil”。代码中还有另一个问题。在第三行,您有
返回nil
。这意味着if语句中的任何代码都不会运行,因为它总是在
return nil
处退出整个方法。我应该把它去掉吗?最终我无法回答这个问题,因为只有你才能说出你想要的逻辑。如果希望在annotation==self.mapView.userLocation时始终返回nil,则可以在返回nil后删除If块中的所有代码。如果您想运行它下面的所有代码,则应该删除
return nil
。另外,请注意
annotation==self.mapView.userLocation
仅测试两个引用是否指向内存中的同一位置(两个变量引用的是完全相同的实例)。如果变量引用的两个不同实例在其他方面相等,则测试仍将返回false。我认为您可能想要的是
if([annotation isEqual:self.mapView.userLocation]){