簡體   English   中英

在當前位置放下銷

[英]Drop Pin on current location

我正在構建一個iOS應用,需要能夠將別針放置在用戶當前所在的位置! 由於某種原因,我一直都在苦苦掙扎! 我嘗試了以下代碼,但遇到了錯誤。

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

    if (annotation == mapView.userLocation)
    {

        MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil];
        annView.pinColor = MKPinAnnotationColorRed;
        annView.animatesDrop=TRUE;
        annView.canShowCallout = YES;
        annView.calloutOffset = CGPointMake(-5, 5);
        return annView;
        [annView release];



    }
}

錯誤是:控件可能達到非空函數的結尾。

非常感謝你的幫助! 贊賞!

以下代碼在Xcode iPhone模擬器中可以正常運行:

#import "ViewController.h"
@import MapKit;

@interface ViewController () <MKMapViewDelegate>

@property (weak, nonatomic) IBOutlet MKMapView *mapView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [self.mapView setDelegate:self];
    [self.mapView setShowsUserLocation:YES];
}

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {

    // zoom to region containing the user location
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 800, 800);
    [self.mapView setRegion:[self.mapView regionThatFits:region] animated:YES];

    // add the annotation
    MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
    point.coordinate = userLocation.coordinate;
    point.title = @"The Location";
    point.subtitle = @"Sub-title";
    [self.mapView addAnnotation:point];
}

@end

當方法具有返回類型時,則必須在所有條件下返回某些內容,而您只在if分支中返回某些內容,否則返回其他內容。 當if語句的計算結果為false時,編譯器還要求您返回某些內容-這就是您收到編譯錯誤的原因。

順便說一句

 [annView release];

永遠不會被執行,因為您要在那之前返回。 但是,為什么有這個原因呢? 即嘗試使用非ARC代碼? 您是否從某處復制了這一行(這是舊代碼)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM