1

FastPDFKit のモノタッチ バインディングを実装しようとしています。継承されたコンストラクターに問題があります。fastPDFKit から「ReaderViewController」をバインドしようとしています。ReaderViewController は、UIViewController を継承する MFDocumentViewController を継承します。

私のC#

NSUrl fullURL = new NSUrl (fullPath);
FastPDFKitBinding.MFDocumentManager DocManager = new FastPDFKitBinding.MFDocumentManager (fullURL);

DocManager.EmptyCache ();


//line where the errors occur
FastPDFKitBinding.ReaderViewController pdfView = new FastPDFKitBinding.ReaderViewController (DocManager); 
pdfView.DocumentID = PageID.ToString ();

Source.PView.PresentViewController(pdfView, true, null);

このコードはビルドされず、新しい ReaderViewController を作成するときに 2 つのエラーが発生します。

Error CS1502: The best overloaded method match for `FastPDFKitBinding.ReaderViewController.ReaderViewController(MonoTouch.Foundation.NSCoder)' has some invalid arguments (CS1502) (iOSFlightOpsMobile)

Error CS1503: Argument `#1' cannot convert `FastPDFKitBinding.MFDocumentManager' expression to type `MonoTouch.Foundation.NSCoder' (CS1503) (iOSFlightOpsMobile)

私のバインディングの関連部分

namespace FastPDFKitBinding
{
    [BaseType (typeof (UIAlertViewDelegate))]
    interface MFDocumentManager {

        [Export ("initWithFileUrl:")]
        IntPtr Constructor (NSUrl URL);

        [Export ("emptyCache")]
        void EmptyCache ();

        [Export ("release")]
        void Release ();
    }

    [BaseType (typeof (UIViewController))]
    interface MFDocumentViewController {
        [Export ("initWithDocumentManager:")]
        IntPtr Constructor (MFDocumentManager docManager);

        [Export ("documentId")]
        string DocumentID { get; set; }

        [Export ("documentDelegate")]
        NSObject DocumentDelegate { set; }
    }

    [BaseType (typeof (MFDocumentViewController))]
    interface ReaderViewController {

    }
}

これで、バインディング エクスポートを MFDocumentViewController から取得し、それらを ReaderViewController インターフェイスに配置することで、エラーを取り除くことができます。

    [BaseType (typeof (UIViewController))]
interface MFDocumentViewController {

}

[BaseType (typeof (MFDocumentViewController))]
interface ReaderViewController {
    [Export ("initWithDocumentManager:")]
    IntPtr Constructor (MFDocumentManager docManager);

    [Export ("documentId")]
    string DocumentID { get; set; }

    [Export ("documentDelegate")]
    NSObject DocumentDelegate { set; }
}

しかし、これらのコンストラクター/メソッドは MFDocumentViewController で定義されているため、これを行いたくありません。これらの継承されたメソッド/コンストラクターを正しく使用するバインディングを取得するにはどうすればよいですか。

4

1 に答える 1