错误 [IRForTarget]:在向 MKMapView 添加叠加层时找不到 Objective-C 间接 ivar 符号

Posted

技术标签:

【中文标题】错误 [IRForTarget]:在向 MKMapView 添加叠加层时找不到 Objective-C 间接 ivar 符号【英文标题】:Error [IRForTarget]: Couldn't find Objective-C indirect ivar symbol while adding overlays to MKMapView 【发布时间】:2012-11-23 06:38:01 【问题描述】:

当我尝试将叠加层添加到地图时出现此错误,来自 SO 答案之一How to prevent from "_OBJC_IVAR_$_UIPickerView._backgroundView symbol not found" error? 我知道我们不应该使用私有 ivar,但我没有在我的代码中使用它们中的任何一个,我仍然收到以下错误。

错误 [IRForTarget]:找不到 Objective-C 间接 ivar 符号 OBJC_IVAR_$_MKPolygon._interiorPolygons

请告诉我解决这个问题的方法

【问题讨论】:

***.com/questions/9983192/… 我对上面链接中提到的代码进行了修改,但没有用.. 【参考方案1】:

从 XCode 4.5 开始,3 个变量声明语句可以折叠成 1 个

    iVar 属性 合成

现在: 1.合成

所以,如果旧代码是:

NSString* name; //in .h file
@property (nonatomic, strong) NSString* name; // in .h file
@synthesize name; // in .m file

从 4.5 开始,只需要:

@property (nonatomic, strong) NSString* name; // in .h file

我们现在可以使用以下任一方法解决此 iVar:

self.name = @"john"; // used to reference the full property setter/getting - usually from outside the object
_name = @"john"; // used to reference an internal variable

当我使用 iVar 时出现此错误消息(注意没有前导下划线):

name = @"john";

修复更改:

   self.name = @"john"; // or
    _name = @"john"; 

注意:我在 xcode 版本 4.5 (4G182) 上没有收到此错误,但我在 4.5.2 (4G2008a) 上收到此错误。

【讨论】:

以上是关于错误 [IRForTarget]:在向 MKMapView 添加叠加层时找不到 Objective-C 间接 ivar 符号的主要内容,如果未能解决你的问题,请参考以下文章

MKMap 引脚颜色不显示

Mkmap查看用户位置

Swift 删除 MKMap 视图上的“我的位置”注释

使用 mkmap 加载地图时显示标题

尝试从数组中的值中删除基于 MKMap 的引脚

如何使 MKMap 适合指定的 View-Region?