5

次のコードを使用して、ビューをコントローラーから取り出します。

CollectionItemView *myView = [self view]; 

これはかなりうまく機能しますが、警告が表示されIncompatible pointer types initializing CollectionItemView __strong with an expression of type NSViewます。なぜこれを取得するのか理解していますが、無視しても大丈夫ですか、それともビュープロパティを上書きする必要がありますか?

チャック

4

2 に答える 2

2

[self view]それが正しいと確信している場合は、次のようにしCollectionItemViewます。

CollectionItemView *myView = (CollectionItemView*)[self view];

または(どちらが良いか)あなたは使うことができます:

id myView = [self view];
于 2012-07-13T13:50:49.377 に答える
0

上書きする必要はありません。trooleeはすでに2つの実用的な解決策を提案しました。ただし、保存するために、別の方法でコーディングしたいと思います。

CollectionItemView *myView = nil;
if ([[self view] isKindOfClass:[CollectionItemView class])
  self.view = (CollectionItemView*)[self view];

isKindOfClassテストのない短いバージョンは、オブジェクトがCollectionItemViewタイプまたはそのサブクラスのいずれかである必要があることをコンテキストから確実に知っている場合は問題ありません。

于 2012-07-13T14:07:02.887 に答える