1

Nimbus フレームワークを使い始めたのですが、この構文に初めて出くわしました。メソッドの宣言と、変数の宣言である種のプロトコルを使用しているようです。クラス名の直後のヘッダーファイルで使用されているプロトコルしか見たことがないので、これはまったく新しいことです。

- (UIView<NIPagingScrollViewPage>*)pagingScrollView:(NIPagingScrollView *)pagingScrollView pageViewForIndex:(NSInteger)pageIndex {

また:

UIView<NIPagingScrollViewPage>* pageView = nil;

これは正確にはどういう意味ですか?なぜ彼らはこの形式を使用しているのですか?

4

2 に答える 2

1

その宣言により、返された UIView が NIPagingScrollViewPage プロトコルに準拠していることを確認します。メソッドが適合宣言されていないオブジェクトを返そうとすると、コンパイラは警告を発します。

その構文のより一般的な使用法はデリゲートです。プロトコルに準拠するすべてのクラスをデリゲートにすることができるため、クラスがプロトコルに準拠していることを確認するために構文が使用されます。

-(void)setDelegate:(id<SampleDelegate>)del //Makes sure that del conforms to the protocol SampleDelegate, the compiler will emit a warning
于 2012-12-02T07:16:16.207 に答える
0

これは、そのプロトコルに準拠していることを宣言する方法にすぎません。そうしないと、警告が表示されます。次に、IDを使用する必要があります。

したがって、常に使用することをお勧めします(datatype<protocol>*)variableName

于 2012-12-02T07:25:44.007 に答える