2017-11-08 2 views
1

私はgitプロジェクトXLPagerTabStripを実装しようとしています。"プロトコルに準拠していません"を修正する方法

プロジェクトによると、すべてのコントローラは、にあります。

ため:)方法PagerTabStripDataSourceのviewControllers(が提供するすべてのビューコントローラは、インフォプロバイダ

に準拠する必要があります。しかし、次のコードは、スロー: does not conform to protocol

extension UserProfileSubController: IndicatorInfoProvider { 

    func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo { 

     return IndicatorInfo(title: "UserProfileSubController") 
    } 
} 

enter image description here

enter image description here

enter image description here

私はオート問題を解決したい場合は、同じプロトコル機能を再実装して、無効な再宣言をスローします。

enter image description here

実際にあなたのコントローラがそれに従わない場合はどのようにdoes not conform to protocol問題を解決するのですか?私は何が欠けていますか?ヘルプは非常に感謝しています。

PS:プロジェクト、ビルドフォルダを削除し、派生データを削除し、再起動してポッドを更新し、ポッドを再インストールしました。

+0

私はサンプルプロジェクトであなたのコードを試してみました。私はポッドを使いませんでしたが、githubから直接ソースコードをダウンロードしました –

+0

私は現在欠けているいくつかの再宣言またはプロトコル拡張エラーがあると思います。 は、実際のエラーを見つけるための簡単な解決策があることを期待していました。あなたの努力のためにありがとう –

答えて

0

最終的にはコピー/貼り付け/依存関係の問題でした。 ポッドと依存関係コードをやり直してから、再インストールすると、問題が最後に解決されました。

-1

私はこれが動作するように起こっているかどうかわからないんだけど、これらを試してみてください。

  1. はクラスでない拡張でコードを置きます。
  2. 使用この特定のポッドIndicatorInfoクラスには、次の方法のようですpod 'XLPagerTabStrip', '~> 7.0'
0

チェック:

public struct IndicatorInfo { 

    public var title: String? 
    public var image: UIImage? 
    public var highlightedImage: UIImage? 

    public init(title: String?) { 
     self.title = title 
    } 

    public init(image: UIImage?, highlightedImage: UIImage? = nil) { 
     self.image = image 
     self.highlightedImage = highlightedImage 
    } 

    public init(title: String?, image: UIImage?, highlightedImage: UIImage? = nil) { 
     self.title = title 
     self.image = image 
     self.highlightedImage = highlightedImage 
    } 

} 

の代わりに、公共構造体 IndicatorInfo {}あなたが公共のプロトコルを使用IndicatorInfo {}

そして、1つのクラスで1つのプロトコルしか使用できないことを願っています。

extension YourViewController : IndicatorInfoProvider { 

    // MARK: - Top Tab Bar Method - IndicatorInfoProvider 
    func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo { 
     return IndicatorInfo(title: "titleStringHere", image: UIImage(named: "Your_Image_Name")) 
     /*or return IndicatorInfo(title: "titleStringHere") */ 
    } 
} 
+0

この場合、構造体であることが正しくありました –

関連する問題