2011-12-30 5 views
1

を認識しないタイプIは、.hファイルのmyViewController.hをバックビューコントローラにプロパティとしての私のビューコントローラのビューを追加しました:XCodeのIBOutlet UIViewのはViewControllersに追加.H - UIViewsは

@property (weak, nonatomic) IBOutlet UIView* view; 

書くときmyViewController.mメソッドの中にview.windowがあると、Xcodeはその行を "プロパティ 'ウィンドウ'がタイプビューのオブジェクトに見つかりません"というエラーとしてマークします。ビルドに失敗します。注:元々、ビューのバッキングクラスview.hをタイプとして選択しました。私はすでにプロジェクトをきれいにしました。

具体的に私はここでエラーが出ます:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
displayLink = [view.window.screen displayLinkWithTarget:(self) selector:@selector(drawFrame)]; 
} 

どのように私はこの問題を解決することができますか?私はビューコントローラメソッドの1つのビューコントローラビューのウィンドウにアクセスするのが好きです。

+1

"view"という名前のコンセントは、 'view'という名前のすべての' UIViewController'の標準コンセントと衝突するので、コンセントを追加しないでください。別の名前を使用してみてください。 –

+0

ありがとうございます。あなたが正しい。私は実際に別の名前を使用します。わかりやすくするために私が選んだプレフィックスを削除しました。 – Lars

+0

私はそれを解決しました。私はビューバッキングクラスに名前を付けたのと同じ名前のコンセントに名前を付けました。これによりエラーが発生しました。クラスと異なるコンセントを命名することでそれを解決します。あなたのヒントをありがとう! – Lars

答えて

1

@synthesizeステートメントとは何ですか?

コンセントに「view」という名前を付けないでください。これは、ビュープロパティを持つUIViewControllerと混同します。

現在、AppleはデフォルトでiOS IBOutletsを弱くしています。これは初期のiOS SDKから変更されています。弱いIBアウトレットは、一般に、スーパービューまたはコントローラによって保持されている場合に機能します。

+0

@synthesizeステートメントはビューコントローラ.mにあります。 UIView.hはview.hによってインポートされ、view.hはビューコントローラ.hにインポートされます。コンセントはデフォルトでは弱いです。弱い人は他のプロジェクトで働いていました。私は他のプロジェクトと比較しましたが(ビュー自体にはアクセスしませんでした)、違いを見つけることはできませんでした。 – Lars

+0

iOS IBOutletsは強く、OSXでは弱いです。 – zaph

+0

が分かります。試しました。それを解決しませんでした。 Appleの「Your first iOS App」ガイドは、ARCと弱いプロパティを使用しています。ヒントありがとう! – Lars

関連する問題