将注释的标题设置为当前地址

2023-12-11

我想获取当前位置的地址并将其设置为注释的标题。但这没有用。我认为这是因为阻塞,但我不知道如何解决它。任何帮助将不胜感激。最相关的代码如下:

WhereAmIAnnotation.h

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface WhereAmIAnnotation : NSObject <MKAnnotation>
{
CLLocation *myLocation;
NSString *addr;
}
@property (nonatomic, retain) CLLocation *myLocation;
@property (nonatomic, copy) NSString *addr;

@end

WhereAmIAnnotation.m

#import "WhereAmIAnnotation.h"

@implementation WhereAmIAnnotation
@synthesize myLocation, addr;

- (CLLocationCoordinate2D)coordinate;
{
return self.myLocation.coordinate; 
}

- (NSString *)title
{  
return self.addr;
}
@end  

MapViewController.m

- (IBAction)gotoCurrentLocation{
self.mapView.showsUserLocation = YES;//a bar button linked with this action
}

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{    
CLLocation *currentLocation = userLocation.location;

MKCoordinateRegion newRegion; 
newRegion.center = currentLocation.coordinate;
newRegion.span.latitudeDelta = 0.02;
newRegion.span.longitudeDelta = 0.02;
[self.mapView setRegion:newRegion animated:YES];

WhereAmIAnnotation *whereAmIAnnotation = [[WhereAmIAnnotation alloc] init];
whereAmIAnnotation.myLocation = currentLocation;
whereAmIAnnotation.addr = [self addrAtLocation:currentLocation];

[self.mapView addAnnotation:whereAmIAnnotation];

self.mapView.showsUserLocation = NO;
}

- (NSString *)addrAtLocation:(CLLocation *)location{
[self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemark, NSError *error) {
    CLPlacemark *topResult = [placemark objectAtIndex:0]; 
    self.addr = [NSString stringWithFormat:@"%@ %@ %@ %@", topResult.country, topResult.locality, topResult.subLocality, topResult.thoroughfare];
}];
return self.addr;
}

我应该实现这个方法

- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id )annotation{}

抱歉这个愚蠢的问题!


您在异步块内修改地址时返回该地址。您应该将返回移动到块内,或者创建一个协议来处理将此信息传递回调用者。

将块更改为:

- (void)addrAtLocation:(CLLocation *)location{
    [self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemark, NSError *error) {
        CLPlacemark *topResult = [placemark objectAtIndex:0];
        whereAmIAnnotation.addr = [NSString stringWithFormat:@"%@ %@ %@ %@", topResult.country, topResult.locality, topResult.subLocality, topResult.thoroughfare];
    }];
}

然后使whereAmIAnnotation一个成员变量。您知道为什么这可以解决您的问题吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将注释的标题设置为当前地址 的相关文章

  • iOS 获取特定语言的字符串的本地化版本

    我正在构建一个适用于 iOS 的应用程序 该应用程序将提供英语和法语版本 我已经阅读了一些有关国际化的教程 并且了解了它的工作原理以及我需要做什么 我遇到的问题是有一个特定的情况 我想为英语用户加载法语字符串 我知道可以为整个应用程序设置语
  • iOS7上UITableViewCell显示白色背景且无法修改

    我已经实现了一个继承自的自定义表格视图单元格类UITableViewCell 表格视图包含背景图像 所以我希望单元格的背景是透明的 iOS7之前看起来很棒 然而 在 iOS7 中 单元格始终显示为白色背景 即使对于 Xcode7 2015
  • GoogleMobileAds iOS 9 链接错误

    我按照以下步骤操作this https firebase google com docs admob ios quick start 由于我在安装 cocoapods 时遇到问题 我手动下载了 SDK zip 将其添加到项目中 它编译得很好
  • 如何更改 iOS 5 中 UITabBarItem 中文本的颜色

    iOS 5 中有更多外观控制 我们如何更改 UITabBarItem 文本颜色 从默认白色变为其他颜色 编辑 工作解决方案 UITabBarItem appearance setTitleTextAttributes NSDictionar
  • 将 React Native 应用程序嵌入到现有的 ios/android 应用程序中

    我需要知道是否可以在现有的 ios android 应用程序中 嵌入 一个 React Native 应用程序 而不共享 React Native 应用程序代码 我们目前有一个 React Native 应用程序 它使用一些插件依赖项 并被
  • iOS 9.3.2 破坏 MPMusicPlayerController

    我正在尝试将 Apple Music 集成到我的应用程序中 直到今天早上我才设法使其完美运行 更新到 iOS 9 3 2 后 一切都不一样了 权限系统的工作原理相同 SK云服务控制器 https developer apple com li
  • 在 Swift 2.0 中以横向模式使用 UIImagePickerController

    我正在编写一个仅限 LandScape 的 iPad 应用程序 我需要从库中拍照以发送数据库 但图像上传屏幕仅适用于纵向模式 如何将其更改为横向模式 我读过一些关于 UIPickerControllerDelegate 不支持横向模式的内容
  • 如何在iOS中获得旋转UIView的完美X,Y位置

    我正在使用 CABasicanimation 来旋转 UIView 我正在使用这段代码 CABasicAnimation rotationAnimation CABasicAnimation animationWithKeyPath tra
  • 自定义选项卡栏上的“更多”菜单

    我在我的应用程序上使用选项卡栏 UITabBarController 我希望自定义单击 更多 按钮时出现的表格的外观 我已经研究出如何通过设置来更改更多屏幕上导航栏的外观 self moreNavigationController navi
  • WKWebView 中的调整大小处理程序中的 window.innerWidth/Height 未更新

    我有一些全屏网页内容 当窗口使用调整大小事件更改大小时 我会更新这些内容 window onresize function var width window innerWidth var height window innerHeight
  • swift 中 pch 的替代品是什么?

    我想知道可以用什么来代替 swift 中的 pch 有没有 pch 的替代方案或方法可以快速摆脱导入 这样我们就不需要对所有类都这样做 我不想一直随身携带 进口 swift 中 pch 的最佳替代品是什么 您无法在 swift 中定义 宏
  • 无法为 FacebookSDK 4 构建模块“FBSDKCoreKit”

    我在将 Facebook SDK 3 更新到 4 时遇到问题 当我添加框架时 它已成功添加 但是当我添加头文件时出现错误 无法构建模块 FBSDKCoreKit 不知道原因 在设置中 允许非模块化包含在框架模块中 设置为YES在构建设置中解
  • 如何处理 iPhone 屏幕尺寸/背景图像分辨率

    在 iPhoneX 之后 我真的很纠结于支持所有设备的图像尺寸和命名约定 有没有办法在 4 7 5 5 和 5 8 屏幕上使用 3x 图像 全屏图像视图应该使用的确切尺寸是多少 您可以使用图像 pdf格式 因此您只需要管理 1x 的单比例图
  • 在 iPhone 上搜索 PDF

    经过两天尝试使用 Quartz 从 PDF 中读取注释后 我成功做到了并且发布我的代码 https stackoverflow com questions 4080373 get pdf hyperlinks on ios with qua
  • 如何以编程方式创建选项卡栏

    大家好 我有基于导航的应用程序 其中我也需要在视图之一中实现选项卡栏 在一个视图中我需要 5 个选项卡 有人可以建议我以编程方式创建选项卡栏吗 每个选项卡应导航到另一个 xib 建议始终受到赞赏 问候 以下是 Apple 提供的用于以编程方
  • searchDisplayController 在 iOS 8 中已弃用

    如何更正以下内容以免出现警告 我缺少什么 修正时searchResultsController to searchController它给了我一个错误 找不到对象 if tableView self searchDisplayControl
  • 适用于 iOS 的 MvvmCross 汉堡菜单

    我在用着https www marcbruins nl xamarin ios hamburger menu mvvmcross https www marcbruins nl xamarin ios hamburger menu mvvm
  • TestFlight Beta 中的消息不可用

    I am seeing Unavailable message in TestFLight Beta App in iOS8 Please find the attached screenshot please tell me how to
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • iPhone Mobile Safari:强制键盘打开

    这是一个 HTML CSS JS jQuery iPad 应用程序 我有一个按钮 可以向下滑动输入表单 我想让用户将注意力集中在输入上 然后启动键盘 这是我正在处理的 但不起作用 myFormField focus 这确实集中了输入 但无法

随机推荐

  • 通过 Excel VBA 修复 PowerPoint 幻灯片中的文本框(右侧)

    我使用以下代码将一个单元格的内容放在 PowerPoint 幻灯片上 Set Sh Pres Slides 1 Shapes AddLabel Orientation msoTextOrientationHorizontal Left 80
  • React.js 中的冒泡和捕获示例

    我正在寻找在 React js 中处理冒泡和捕获的示例 我发现一个使用 JavaScript 的 但我很难找到 React js 的等效项 我如何在 React js 中创建冒泡和捕获的示例 React 支持冒泡和捕获 其方式与 DOM 规
  • 如何用canvas画一条可以向左移动的曲线?

    我正在编写一个程序来绘制sine curve与画布 HTML
  • JSTL c:if 无法识别 ${} 内的字符串并导致 EL 语法错误

    为什么此代码的 POST 和 提交 部分在我的 IDE 中以不同的颜色突出显示 此外 这里的语法荧光笔不会以相同的颜色突出显示它们
  • 如何定义可以在应用程序中的任何位置访问的全局变量? [复制]

    这个问题在这里已经有答案了 可能的重复 全局 int 变量目标 c 我想创建一个全局变量 我想在任何地方访问这个变量 Java 等效项 static var score int 0 例如 如果我在 Game 类中定义一个全局变量 如何访问这
  • 为什么同源策略不阻止 POST 请求? [复制]

    这个问题在这里已经有答案了 据我所知 跨源 简单 请求 例如 GET 和 POST 始终是允许的 但您只是无法查看响应 并且 PUT DELETE 会被阻止 或者如果您的浏览器支持 CORS 则会进行预检 我明白 只要响应被阻止 允许发送
  • 如何从文本文件中回显随机行

    我的文本文件格式是 这是第一行 这是第二行 这是第三行 文本文件中可能有更多行 如何使用 php ini 在每次刷新时从文本文件中回显一行随机行 感谢所有评论 谢谢 我们谈论的文件有多大 简单的方法是将整个文件作为字符串数组加载到内存中 并
  • 方法隐藏是多态性的一种形式吗?

    多态性是采取多种形式的能力 方法重写是运行时多态性 我的问题是 Java中有静态多态之类的东西吗 方法隐藏可以被视为多态性的一种形式吗 In this 问题的答案 据说静态方法不是多态的 这是什么原因呢 如果我们运行这个测试 class A
  • 用于转置 double[][] 矩阵的紧凑流表达式

    我想转置一个double 具有最紧凑和最有效的表达方式的矩阵 现在我有这个 public static Function
  • 使用 ASP.NET MVC 打印元标记时出现问题

    我正在尝试根据模型中的数据在视图中创建元标记 我的视图代码如下所示 但我的输出看起来像这样 meta name description content lt Html Encode Model MetaDescription gt gt 我
  • 删除 SQL Server 2005 全文索引中的干扰词

    在一个非常典型的场景中 我的 Web 应用程序上有一个 搜索 文本框 其中将用户输入直接传递到存储过程 然后使用全文索引搜索两个表中的两个字段 这两个表使用适当的键连接 我正在使用 CONTAINS 谓词来搜索字段 在传递搜索字符串之前 我
  • 将多行多列值显示为单行多列值

    我必须在一行中显示单个人的多种收入 收入类型和雇主名称值 因此 如果 A 拥有来自三个不同来源的三种不同收入 id Name Employer IncomeType Amount 123 XYZ ABC Inc EarningsformJo
  • xml_parse 无内存错误 PHP

    我在使用 xml parse 时遇到了一个奇怪的错误 我的脚本通过 xml parse 函数在 XML 文件的最后一行返回 无内存 错误 仅当文件大小大于 10Mb 时才会发生这种情况 少一点也是可以接受的 但我有 3Gb 可用于 PHP
  • 将其他文件包含在数据流中

    我的数据流使用 sql文件 该文件包含一个查询 它位于名为的目录中queries 我需要将此文件与我的数据流一起上传 我发现使用了一个manifest in文件 但据我所知 它没有做任何事情 我把这个文件称为MANIFEST in在我的根目
  • Xcode 配置文件位置

    Xcode 8 3 3 中的配置文件位于项目和 或文件目录中的什么位置 对于旧版本的 Xcode 它们的位置 Library MobileDevice Provisioning Profiles 配置文件不与项目一起存储 Xcode 有一个
  • 在没有 Turbolink 的 AJAX 之后在 Rails 中触发 js

    我有一个rails4应用程序 由于我不擅长 js 所以我关闭了 TURBOLINKS 我读了很多文章 但我仍然不知道如何组织我的 javascript 文件 目前我在 AJAX 附加后触发 js 代码时遇到问题 我有一个任务列表 索引页 如
  • Facebook 打开图表,过滤好友列表数组

    我希望我的应用程序能够过滤我使用开放图获得的朋友列表 登录我的网站的人只能看到他们也使用我的应用程序的朋友 我在 Quora Thumb 等许多应用程序上都注意到了这一点 如何使用 php 来完成呢 当您使用 FQL 查询时可以轻松完成us
  • 如何在 django 导航栏下拉列表中显示活动链接?

    我有一个导航栏菜单 其中包含链接列表 我想在用户位于页面上时显示活动链接 到目前为止 我已经设法使用没有这样的下拉菜单的链接来做到这一点 但我似乎无法正确使用下拉链接 如果用户位于下拉链接的页面上 则导航栏上的父链接会突出显示 如下所示 任
  • 使用 AVMutableComposition iPhone

    我正在使用下面的代码 按顺序流式传输两个视频 但它在模拟器中没有显示任何视频 它完全是空白的 另外我怎样才能找到这两个视频 例如 如果一个视频时长 2 分钟 第二个视频时长 3 分钟 现在我需要获取这些视频的总时间并进行搜索 当我将滑块滑动
  • 将注释的标题设置为当前地址

    我想获取当前位置的地址并将其设置为注释的标题 但这没有用 我认为这是因为阻塞 但我不知道如何解决它 任何帮助将不胜感激 最相关的代码如下 WhereAmIAnnotation h import