2

プロジェクト(XCode 4、iOS 5、ARC付き)には、ブール値プロパティを持つUIViewのサブクラスがあります:

 // Diagram.h
 @interface Diagram : UIView 
 @property (assign) BOOL  flag;
 @end

 // Diagram.m
 @implementation Diagram
 @synthesize flag; 
 ...

メイン ビュー コントローラで:

 // ViewController.h
 @property (nonatomic, strong) IBOutlet Diagram *schema;
 ...

 // ViewController.m
 @synthesize schema;
 ...
 schema.flag = NO;
 ...

最後の行で次のエラーが発生します。

 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setFlag:]: unrecognized selector sent to instance 0xb07e660'

何か助けはありますか?

ありがとうございました。

4

3 に答える 3

4

ビューをレイアウトするときViewControllerは、Identity インスペクターがビューをDiagramではなくとして識別UIViewし、正しいビューがschemaコントローラーのアウトレットにリンクされていることを確認してください。

現在、エラー メッセージによると、ランタイムはそれschemaがプレーンであると考えています。UIView

于 2012-06-28T12:23:41.143 に答える
2

それを見つけた!

Diagram.mは、ターゲット>ビルドフェーズ>ソースのコンパイルにリストされていませんでした。

于 2012-07-11T10:07:07.030 に答える
0

ビュー XIB (ダイアグラムがある場所) で、ダイアグラム ビューをクリックします。

右側のパネルで 3 番目のタブを選択すると、オブジェクト クラス (「カスタム クラス」という名前の最初のフィールド) を変更できます。実際には、UIView のはずです。「ダイアグラム」に設定します。

于 2012-06-28T12:32:21.013 に答える