Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么我得到一个未被识别的选择器被发送到我的MapViewController的实例异常?(iOS)

为什么我得到一个未被识别的选择器被发送到我的MapViewController的实例异常?(iOS)
EN

Stack Overflow用户
提问于 2012-08-14 10:35:19
回答 2查看 4.1K关注 0票数 1

我正在上斯坦福大学的iOS课程(抱歉,我是这些家伙中的一员,但我想我得学点什么),而且我使用的代码与教授在关于MKMapViews的讲座中使用的代码几乎完全相同,但是我得到了一个例外,他没有,我真的搞不懂。是什么导致了这一切?

我得到的例外是:

-NSConcreteData _isResizable:未识别的选择器发送到实例0x90a4c00

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
    MKAnnotationView *aView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"MapVC"];
    if (!aView) {
        aView = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"MapVC"];
        aView.canShowCallout=YES;
        aView.leftCalloutAccessoryView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
        aView.rightCalloutAccessoryView= [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    }
    aView.annotation=annotation;
    [(UIImageView *)aView.leftCalloutAccessoryView setImage:nil];
    return aView;
}

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    UIImage *image = [self.delegate getImageForMapViewController:self withAnnotation:view.annotation];
    [(UIImageView *)view.leftCalloutAccessoryView setImage:image]; // this is where I get the exception.
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-14 11:31:08

如果要传递的参数实际上不是-[NSConcreteData _isResizable]: unrecognized selector sent to instance,则在调用UIImageView上的UIImage时可能会发生错误UIImage

根据您的注释,getImageForMapViewController方法实际上是返回NSData而不是UIImage。这可能导致您所看到的错误。

修正getImageForMapViewController方法以返回UIImage

票数 5
EN

Stack Overflow用户

发布于 2012-08-14 10:54:01

如果需要更改MKPinAnnotationView的映像,请使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    MKAnnotation *pin = view.annotation;
    UIImage *image = [self.delegate getImageForMapViewController:self withAnnotation:view.annotation];

    UIImageView *imagePin = [[UIImageView alloc] initWithImage:image];
   [[mapView viewForAnnotation:pin] addSubview:imagePin];
}

以下是问题所在,请更改此方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    UIImage *image = [self.delegate getImageForMapViewController:self withAnnotation:view.annotation];
    [(UIImageView *)view.leftCalloutAccessoryView setImage:image]; // this is where I get the exception.
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    UIImage *image = [self.delegate getImageForMapViewController:self withAnnotation:view.annotation];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    view.leftCalloutAccessoryView = imageView; // this is where I get the exception.
}

这里的问题是leftCalloutAccessoryViewUIView类型的。您正在尝试将image设置为UIViewUIView不响应setImage方法。在设置图像之后,您尝试将UIView转换为UIImageView,这是一个坏习惯。因此,您需要将图像添加到imageView中,然后需要将imageView指定为leftCalloutAccessoryView

当您试图编写这样的[(UIImageView *)view.leftCalloutAccessoryView setImage:image];时,请记住先转换它,然后调用该方法。对于上面的行,最好写如下,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UIImageView *imgView = (UIImageView *)view.leftCalloutAccessoryView;
[imgView setImage:image];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11958605

复制
相关文章
产品上线的时候,总害怕还有缺陷未被发现
问:产品上线的时候,总害怕还有缺陷未被发现;想知道是就我一个人有这种心理,还是所有测试人都有 ?
IDO老徐
2022/05/27
3610
我为什么要创建一个不能被实例化的类
Python 由于多继承的原因,可能会出现钻石继承[1]又叫菱形继承。为了保留多继承的优点,但又摒除缺点,于是有了混入这种编程模式。
青南
2020/04/08
3.4K0
我为什么要创建一个不能被实例化的类
一个App卖了4亿美元,这家听声识曲公司为何得到Apple的青睐?
2018 年 9 月,苹果最终以 4 亿美金完成对 Shazam 公司的收购,让不少人为之振奋,在当时对外公布的一份声明中可以看到,自Shazam应用登陆App Store以来,是其最受欢迎的iOS应用之一。
AI科技大本营
2019/03/06
1K0
一个App卖了4亿美元,这家听声识曲公司为何得到Apple的青睐?
一个App卖了4亿美元,这家听声识曲公司为何得到Apple的青睐?
2018 年 9 月,苹果最终以 4 亿美金完成对 Shazam 公司的收购,让不少人为之振奋,在当时对外公布的一份声明中可以看到,自Shazam应用登陆App Store以来,是其最受欢迎的iOS应用之一。
AI科技大本营
2019/05/12
1.2K0
我曾得到的最佳编程建议
我曾得到的最佳编程建议   这是一个有关于我得到的一些专业性编程建议的故事,以及它如何影响了我的职业生涯。我真心觉得此建议真可谓是字字珠玑,所以我想分享给大家。  建议   还是在1996年,我刚
用户1289394
2018/02/27
7600
我曾得到的最佳编程建议
如何遍历一个实例的所有属性,得到属性的名称和值
College college = this.collegeService.getCollegeById(id); try { Field[] fields = college.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true);//类中的成员变量为private,须进行此操作 System.out.pri
qubianzhong
2018/09/19
2.6K0
iOS 根据生日得到生肖,星座,年龄的算法
根据用户生日,得到相应的年龄,星座和生肖。有的项目中可能会用到,贴出来共享。 得到年龄,这个很简单了: - (void)getAgeWith:(NSDate*)birthday{ //日历 NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; NSUInteger unitFlags = NSCalendarUnitYea
王大锤
2018/05/17
1.7K0
黑客在昆士兰供水系统驻留9个月未被发现
11月10日,澳大利亚昆士兰审计署发布了年度财务审计报告,显示昆士兰的用水供应商SunWater竟被黑客入侵整整9个月,且始终未被发现。
FB客服
2021/11/16
4040
一些我用得到的 Python 脚本
下面的python脚本有一部分是我百度然后修改的,一部分是我自己写的,如果以后有什么新的我用的到的脚本或者这些脚本有修改我也会在这里更新,这些源码放在这里仅以备份为目的
猫猫摸大鱼
2022/07/21
6410
曾经我是一个只会Excel的数据分析师,直到我遇到了……
算法与数据结构 我是一个数据分析师。 准确来说我是一个当年只会excel数据透视表,就天不怕地不怕地来当数据分析师的人。当年的某一天,我的老板Q我: 小刘啊,我小姨子给了我一个全国市委书记的名单,你帮
前朝楚水
2018/04/03
8370
曾经我是一个只会Excel的数据分析师,直到我遇到了……
我发现一个非常好的学IC的平台,还送腾讯会员
这个平台非常适合学习IC的同学(无论是入门还是进阶),最近注册还送腾讯会员,白话IC真诚推荐。这个网站叫“牛客”。
白山头
2022/09/22
4280
我发现一个非常好的学IC的平台,还送腾讯会员
程序员欢乐送(60):我有一个大胆的想法!
一直保持的追求有三点:技术、快乐、财富,这里记录每周值得分享的内容,周五把欢乐送达。
Jack_Cui
2020/04/30
9730
程序员欢乐送(60):我有一个大胆的想法!
我对知识付费的看法(文末送福利)
最近知识付费这一话题很火,大家也接触到了很多知识付费的内容,最近我在任玉刚的公号「玉刚说」中看到一篇文章,分析的很透彻,因此分享给大家,下面是玉刚说中的《我对知识付费的看法》内容。 这几年知识付费特别火热,最最开始,我听别人说过喜马拉雅和得到,但是我都没用过。后来我了解了知乎Live,我当时尝试着开了两期,大家反响还不错。再后来有小伙伴给我推荐小密圈(也就是现在的知识星球),我也悄悄地运营了几个月,大家反响也挺好。 喜马拉雅和得到并不是特别适合程序员群体,这里不做过多讨论。我所知道的适合程序员群体的知识付费
用户1269200
2018/06/22
1.8K0
我为什么反对用异常做流程控制?
像SSH/M这种基础框架的出现,让不少程序员“瘫痪”成了流水线工人。以前小心翼翼方能写就的逻辑分支判断,演变成了直接丢个异常然后坐等AOP拦截处理,此时的拦截器就是个垃圾处理厂。这种似乎失控的编码方式,让我想到了邪恶的“GoTo”语法,很多编程语言里都有它, 但是都不建议你用它。因为邪恶的不是GoTo本身,而是滥用GoTo的我们。
曲水流觞
2019/10/27
4K2
你从一个世界来到我的世界-TAU下
之前我们已经赘述了4G的附着过程(关键字attach获取),简单的整理了网络身份ID——GUTI、P-TMSI以及他们的mapping关系(关键字id获取),然后讲述了4G中移动性管理的TAU上——4G内部的TAU消息(以Inter-MME with SGW change为例,关键字tau获取);接下来我们继续简单赘述一下TAU的其他相关内容。
琉璃康康
2022/04/19
8520
你从一个世界来到我的世界-TAU下
我以为我很懂Promise,直到我开始实现Promise/A+规范
2我一度以为自己很懂Promise,直到前段时间尝试去实现Promise/A+规范时,才发现自己对Promise的理解还过于浅薄。在我按照Promise/A+规范去写具体代码实现的过程中,我经历了从“很懂”到“陌生”,再到“领会”的过山车式的认知转变,对Promise有了更深刻的认识!
程序员白彬
2021/03/09
6420
我以为我很懂Promise,直到我开始实现Promise/A+规范
我以为我很懂Promise,直到我开始实现Promise/A+规范
我一度以为自己很懂Promise,直到前段时间尝试去实现Promise/A+规范时,才发现自己对Promise的理解还过于浅薄。在我按照Promise/A+规范去写具体代码实现的过程中,我经历了从“很懂”到“陌生”,再到“领会”的过山车式的认知转变,对Promise有了更深刻的认识!
程序员白彬
2021/03/23
7950
iOS异常 'NSInvalidArgumentException'
在做帧动画demo时遇到以下异常 Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘* -[__NSArrayM insertObject:atIndex:]: object cannot be nil’ 异常代码 - (NSArray*)loadAllImagesWithimagePrefix:(NSString*)imagePrefix count:(int)count{
肓己
2021/08/12
1.2K0
iOS学习——UIPickerView的实现年月选择器
  最近项目上需要用到一个选择器,选择器中的内容只有年和月,而在iOS系统自带的日期选择器UIDatePicker中却只有四个选项如下,分别是时间(时分秒)、日期(年月日)、日期+时间(年月日时分)以及倒计时。其中并没有我们所需要的只显示年月的选择器,在网上找了很多相关的资料,但是觉得都写得过于麻烦。因此,为了满足项目需求,自己用UIPickerView写了一个只显示年月的选择器界面,同时还可以控制我们的显示的最小时间。当然,如果要控制其他内容也都是可以的,无非就是在数据处理上多一些处理和控制。 typed
mukekeheart
2018/03/26
4.6K0
iOS学习——UIPickerView的实现年月选择器
点击加载更多

相似问题

为什么未被识别的选择器被发送到实例?

10

IOS 5.1 ARC未被识别的选择器被发送到实例

28

未被识别的选择器被发送?

12

未被识别的选择器被发送到实例使用LongPressGestureRecognizer!

33

ios无法识别的选择器被发送到实例

34
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文