1

SOの回答の1つから、マップにオーバーレイを追加しようとしているときにこのエラーが発生しました「_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 に答える