1

当我尝试将叠加层添加到地图时出现此错误,来自 SO 答案之一如何防止“_OBJC_IVAR_$_UIPickerView._backgroundView 符号未找到”错误?我知道我们不应该使用私有 ivar,但我没有在我的代码中使用它们中的任何一个,但我仍然收到以下错误。

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

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

4

1 回答 1

0

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

于 2012-12-20T09:25:19.557 回答