错误 [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 符号的主要内容,如果未能解决你的问题,请参考以下文章