在注释视图上使用 canShowCallout 时出现 MKMapKit 异常

2024-01-15

我正在尝试使用非常简单的自定义地图注释视图和标注 - 创建注释视图时,只需将 UIImageView 作为子视图添加到其自身。效果很好。

但是,当我在注释视图上调用 canShowCallout 时,返回视图后立即在 MapKit 中引发异常。堆栈的末尾看起来像:

#0  0x94e964e6 in objc_exception_throw
#1  0x01e26404 in -[MKOverlayView _addViewForAnnotation:]
#2  0x01e22037 in -[MKOverlayView _addViewsForAnnotations:animated:]
#3  0x01e1ddf9 in -[MKOverlayView showAddedAnnotationsAnimated:]
#4  0x01df9c0e in -[MKMapView _showAddedAnnotationsAndRouteAnimated:]
#5  0x01e0371a in -[MKMapView levelView:didLoadTile:]

我的 viewForAnnotation 非常简单:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    if ( ! [annotation isKindOfClass:[MyAnnotation class]] )
        return nil;

    MyAnnotationView *useView = (MyAnnotationView *)[myMapView dequeueReusableAnnotationViewWithIdentifier:@"resuseview"];
    if ( useView == nil )
    {
        useView = [[[MyAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"resuseview"] autorelease];
        useView.canShowCallout = YES;  // if commented out view appears just fine
    }
    else
    {   useView.annotation = annotation;  }

    return useView;
}

正如代码中所述,注释视图按原样工作正常 - 直到我添加 canShowCallout,然后它在地图第一次获取视图时崩溃。


答案是 MyAnnotation(实现了 MKAnnotation 协议)没有实现两个可选的协议方法:

- (NSString *)subtitle;
- (NSString *)title;

因为我计划了一个完全自定义的标注,所以我认为我不需要定义这些 - 并且调用堆栈没有显示无法识别的选择器。

此外,我实现这两个只是为了返回 nil,但发现为了让注释真正激活标注,title方法(至少)必须返回一个非零值,否则将不会显示标注。

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

在注释视图上使用 canShowCallout 时出现 MKMapKit 异常 的相关文章

  • CGContextSetLineWidth(context, 1) - 宽度几乎总是至少 2 像素而不是 1

    With CGContextSetLineWidth context 1 宽度几乎总是至少 2 像素而不是 1 QQCandleStickLayer m id init self super init if self nil self de
  • 可达性reachabilityWithAddress不起作用

    我正在尝试使用以下代码确定 iPhone 是否可以连接到我的 IP 地址 struct sockaddr in server address server address sin len sizeof server address serv
  • 如何加密捆绑的文本/json 文件?

    我的 iOS 应用程序捆绑了几个文件 现在 如果有人下载该应用程序并访问 ipa 文件 他就可以轻松阅读它们 我想让事情变得更难 您知道有关该主题的任何资源吗 我想我需要一个加密库 以及编码文件的构建脚本中的一些脚本 当然 我知道有人可能会
  • IOS - 如何创建具有模糊背景的 Facebook 反应栏?

    虽然这周可能不会复制 Facebook 的某些设计 但我希望能够设计我自己的下面的反应指示器视图版本 我有三个UIImageViews 排列在与上面相同的位置 问题是 与 Facebook 不同 背景颜色可能会改变 即位于UIBlurEff
  • 使用Apple80211 api时如何知道OPEN、WPA、WPA2、WEP等安全类型?

    Cydia中的Wifi WiFi FoRum等wifi扫描应用可以知道安全类型 使用 Apple80211 api 时 应用程序如何知道 OPEN WPA WPA2 WEP 等安全类型 CAPABILITIES 的值为 1057 1025
  • iOS Facebook SDK - 远程定义 FacebookAppID

    使用iOS Facebook SDK 3 0 需要在应用程序的info plist中定义FacebookAppID和相关的URL Scheme 我想远程定义这些 向我自己的服务器请求应用程序 ID 所以有两个不同的问题 我可以在运行时更改应
  • iPhone UIWebview——保存已下载的图像

    我有一个带有嵌入式 UIWebview Safari 控件的 iPhone 应用程序 我希望能够在本地存储某些网页的图像 我可以通过编程方式访问UIWebview下载图像的路径吗 或者我需要解析HTML 然后去网上找到图像资源并再次下载 我
  • 如何在 iOS 企业帐户中创建开发人员配置文件请求?

    我们有 iOS 企业帐户 现在我们想要向我们的团队添加一名开发人员 该开发人员将创建一个开发人员配置文件 问题是新添加的开发人员在他的苹果帐户中看不到配置文件标签 任何人都知道新添加的开发人员如何创建配置文件 感谢您 Steps 您可以通过
  • UIToolBar 位于 UITabBar 之上?

    在 照片 应用程序的 相机胶卷 部分中 您可以单击右上角的按钮来编辑照片 这将底部选项卡栏替换为 UIToolBar 中的三个新按钮 我想做类似的事情 但我无法让我的 UIToolBar 位于选项卡栏的顶部 有没有办法指定图层顺序 或者我需
  • 如何读取 IBAction 中的 UITextField 值。我正在以编程方式创建 UITextField

    我怎样才能阅读UITextField值在IBAction 我正在创造UITextField以编程方式 所以我无法设置 property and synthesize使用 Xcode 要生成的代码UITextField如下 for i 0 i
  • 特别分发:应用程序安装失败

    我已经为我尝试分发的应用程序创建了一个临时存档和一个 ipa 文件 我还创建了一个分发配置文件 其中包含我计划将应用程序分发到的设备的 UDID 当我将 ipa 和 mobileprovision 文件拖到 iTunes 中并尝试将应用程序
  • 帮助在 UIWebView 中使用 Javascript 代码

    我想在 webView 中运行以下代码 以便内容可编辑 javascript document body contentEditable true document designMode on void 0 到目前为止 我已经尝试过这个 v
  • 如何在 iPhone 中查找本周的最后一天?

    在我的应用程序中 我使用以下代码来检索当前日期和星期 NSDate today1 NSDate date NSDateFormatter dateFormat NSDateFormatter alloc init dateFormat se
  • Flipboard 动画

    有谁知道如何构建像 Flipboard 应用程序一样的翻转动画 谢谢 如果你指的是翻页过渡 请查看我编写的 OpenGL 过渡类 https github com epatel EPGLTransitionView https github
  • iphone相当于android打开其他应用程序的意图

    是否有像 iphone 中可用的 android 意图功能 Android 使用意图从调用应用程序打开其他应用程序 以使用其他应用程序已实现的功能 我在某处读到 iphone 有 url 方案 但找不到更多信息 thanks 尝试查看以下答
  • 如何从标签栏控制器上方显示 UIActionSheet 视图?

    我需要在选项卡栏控制器上方显示操作表 我的意思是 即使操作表视图处于可见模式 我也能够看到选项卡栏控制器 因此 请建议如何从选项卡栏控制器上方查看 是否可以 其次 如何更改操作表的背景颜色和取消按钮背景颜色 请帮我 谢谢你 马丹 莫汉 要从
  • 加速度计适用于 iphone/ipad 模拟器吗?

    据我所知 当我在 XCode 中使用 iPad 模拟器时 我的应用程序应该会触发加速计事件 但事实并非如此 我用谷歌搜索了一下 似乎加速度计没有在模拟器中实现 这是正确的吗 如果是这样 为什么他们会有 硬件 gt 摇动手势 菜单选项 我的代
  • 自定义 UINavigationController UINavigationBar

    基本上我想要一个定制UINavigationBar 我不希望它是 半透明 或任何东西 就像图片应用程序一样 我基本上想完全删除它 但我仍然希望能够在按下导航控制器时添加后退按钮等 并且我想要视图 例如 UITableViewControll
  • 使用 Dirac 在 iPhone 中进行实时音高变化 [重复]

    这个问题在这里已经有答案了 可能的重复 iPhone 上的实时音调变换 https stackoverflow com questions 1100495 real time pitch shifting on the iphone 我已经
  • 增加 iPhone 的推送通知徽章

    是否可以在收到通知时增加徽章值 或者我应该将计数作为有效负载发送吗 如果我每次都将徽章值发送为 1 那么如果应用程序未打开 我如何增加应用程序图标中的徽章值 我已经使用了这段代码 但不起作用 void application UIAppli

随机推荐

  • 无法在 Symfony 3 中找到模板

    我知道有很多类似的主题 但我没有找到解决方案 我有这个问题 无法找到模板 CoreBundle index html twig 查看 var www html MyProject vendor symfony symfony src Sym
  • 无法删除动态添加的脚本

    我正在附加一个子元素 其中引用了 javascript 和样式表 但我想在不再使用它时再次删除它 var head document getElementsByTagName head 0 We create the style var s
  • 为什么我收到未定义的方法“cookies”?

    我正在尝试为我的 Rails 后端应用程序设置 Authlogic 和 single access token 我正在使用rails api gem 我正在遵循这个例子 http blog centresource com 2013 06
  • PHP 中舍入的最佳方法

    我有一个表格 当用户填写他们拥有的瓶子总数时 它会插入数据库 然后总结有多少箱 例如 在葡萄酒中 有 12 个瓶箱 如果用户放入 100 个瓶子 则应将其除以 12 得出总和 8 33333333 bottles 100 将其四舍五入为数字
  • 如何确定mxgraph中连接的哪一侧已连接

    我遇到这样的问题 一个决定有 3 个方面Input Yes No 我想确定箭头连接到其中的哪一个 这是我要连接的方式 从 是 连接 问题 如何知道连接是否已连接Input Yes No sides Note 如果问题可以通过内置菱形解决 那
  • 无法从 Firebase 检索图像

    我正在尝试构建一个信使类型的应用程序 为此 我将手机中的图像上传到 Firebase 该图像已成功存储在 Firebase 存储中 我正在尝试在手机上显示图像 我使用 Picasso 和 Glide 从 Firebase 检索图像 但我的照
  • 如何在java中用普通矩形轮廓绘制圆角矩形

    对于我的 java 应用程序 我需要一个圆角矩形 其轮廓看起来像普通矩形 如下所示 我知道你可以通过在其中绘制一个普通矩形和一个 RoundRect 来实现这一点 但我不想在其中绘制一个 RoundRect 因为我想在其中绘制其他内容 所以
  • 暂停和恢复 ScheduledExecutorService

    我正在写一个俄罗斯方块克隆 我想让碎片每 60 秒落下得更快一点 为此我使用了预定执行服务 http docs oracle com javase 7 docs api java util concurrent ScheduledExecu
  • 创建运行时确定类型实例的最佳方法[重复]

    这个问题在这里已经有答案了 创建运行时确定的类型实例的最佳方法 在 NET 4 中 是什么 我有一个实例方法 虽然作用于 BaseClass 对象 但可以由其派生类的实例调用 我需要创建另一个相同类型的实例this方法内 为每个派生类重载方
  • 使用 ToArray() 将列表转换为数组

    我创建了一个名为 listItem 的类和以下列表 List
  • 重新申报错误

    我已经理解声明和定义之间的区别 当我遇到疑问时 我正在练习一些问题 下面的代码要求我列出代码片段中的错误 f int a int b int a a 20 return a 为什么这会给出重新声明错误a 它不应该给出多重定义吗a因为在 f
  • 使用 APIController 补充 [FromUri] 序列化

    我们有多个 API 控制器接受 GET 请求 如下所示 FooController public IHttpActionResult Get FromUri Foo f BarController public IHttpActionRes
  • “未使用的导入警告”和 pylint

    因此 我正在使用 Python 开发一个项目 并尝试使其符合 pylint 以及一般情况下的标准 所以 我有一个源文件 我们将其称为 a py a py import loggingsetup def foo log info This i
  • C 堆栈中的递归[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 这是合并排序中分区的代码 我实际上无法理解 reusrion 在其中是如何工作的 合并排序分区 void partition int arr
  • 7z 命令行压缩文件夹

    我正在尝试使用 7zG exe 的命令行来压缩 7z 文件夹 我的代码适用于文件 但不适用于文件夹 有人可以告诉我使用 7z 命令行压缩文件夹的正确方法吗 以下是仅适用于文件的示例代码 每当我尝试运行此代码时 7zip 都会显示一个消息框
  • 如何在matlab中编写指标函数

    我是 matlab 的新用户 我想解决以下问题 我想构造一个分段常数函数f f应该是一个匿名函数 例如f t 1 0 0 25 t 然而 分段常数函数的区间数一般不固定 相反 分段间隔取决于用户输入 例如 如果输入4 则分段间隔变为 0 0
  • WooCommerce 在订单状态完成时触发功能

    我试图在订单完成时触发一个功能 我正在使用这段代码 add action woocommerce order status completed array this payment complete 1 然后这个函数 public func
  • 异步等待进度报告不起作用

    我有一个 C WPF 程序 它打开一个文件 逐行读取它 操作每一行 然后将该行写入另一个文件 那部分工作得很好 我想添加一些进度报告 因此我将方法设为异步 并将 wait 与进度报告结合使用 进度报告非常简单 只需更新屏幕上的标签即可 这是
  • 从 RSA .pem 文件获取私钥 [重复]

    这个问题在这里已经有答案了 鉴于这种 pem文件 使用 openssl 生成并使用密码加密 BEGIN RSA PRIVATE KEY Proc Type 4 ENCRYPTED DEK Info DES EDE3 CBC AC009672
  • 在注释视图上使用 canShowCallout 时出现 MKMapKit 异常

    我正在尝试使用非常简单的自定义地图注释视图和标注 创建注释视图时 只需将 UIImageView 作为子视图添加到其自身 效果很好 但是 当我在注释视图上调用 canShowCallout 时 返回视图后立即在 MapKit 中引发异常 堆