【问题标题】:Error [IRForTarget]: Couldn't find Objective-C indirect ivar symbol while adding overlays to MKMapView错误 [IRForTarget]:在向 MKMapView 添加叠加层时找不到 Objective-C 间接 ivar 符号
【发布时间】: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

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

【问题讨论】:

标签: objective-c mkmapview mkoverlay ivar


【解决方案1】:

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

  1. iVar
  2. 属性
  3. 合成

现在: 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) 上收到此错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多