0
@protocol BGTableViewDelegateMother <BGIhaveNavigationController>



@end

@interface BGTableViewDelegateMother : NSObject
@property (weak,nonatomic) UITableView * tv;
@property id <BGIhaveNavigationController> delegate;
@end

後で言いますが、BGTableViewDelegateMother を継承したいと思います。

ただし、デリゲートのタイプを別のものに変更したいと考えています。そうではないかもしれませんが。出来ますか?

もちろん、BGIhaveNavigationController と BGIhaveNavigationController を継承するものがあります。

4

1 に答える 1

1

サブクラスのデリゲートが準拠するプロトコルに BGIhaveNavigationController プロトコルが組み込まれている限り、問題ありません。次のようなことができます。

@protocol BGIhaveNavigationControllerAndSomethingElse <BGIhaveNavigationController>
- (void)somethingElse;
@end

@interface BGTableViewDelegateChild : BGTableViewDelegateMother
@property id <BGIhaveNavigationControllerAndSomethingElse> delegate;
@end

BGIhaveNavigationControllerAndSomethingElse が次のように宣言されている場合に注意してください。

@protocol BGIhaveNavigationControllerAndSomethingElse <NSObject>

(つまり、BGIhaveNavigationController を組み込んでいない) 場合、コンパイラはBGIhaveNavigationControllerのデリゲートの型について不平を言うでしょう。

于 2013-06-07T05:32:19.197 に答える