1

CGPDFDocumentRef は CGPDFDocument にバインドする必要があると思います

私は次のことを試しています

    //- (id)initWithPDFDocument:(CGPDFDocumentRef)_document filepath:(NSString *)fullFilePath;
    [Export("initWithPDFDocument:filepath:")]
IntPtr Constructor (CGPDFDocument document, string path);

私も含めています:

using MonoTouch.CoreGraphics;

バインディング プロジェクトをコンパイルしようとすると、次のエラーが発生します。

: error BI1002: btouch: Unknown kind MonoTouch.CoreGraphics.CGPDFDocument document in method 'pdftest.ReaderDocument.Constructor'

編集:

poupou からの入力後、次のようになります。

    [BaseType (typeof (NSObject))]
    partial interface ReaderDocument {

    [Export("initWithPDFDocument:filepath:")] 
    [Internal] IntPtr Constructor (IntPtr document, string path);

そして、extras.cs:

    public partial class ReaderDocument {
        public ReaderDocument (CGPDFDocument doc, string path) : this (doc.Handle, path) { }
    }

MonoDevelop でバインディング プロジェクトをビルドできますが、btouch で次のエラーが発生します。コマンド「/Developer/MonoTouch/usr/bin/btouch MyBindingLib.cs -s:extras.cs」を使用しています

MyBindingLib.cs(12,19): error CS0260: Missing partial modifier on declaration 
of type `mybindingtest.ReaderDocument'. Another partial declaration of this type 
exists
extras.cs(6,30): (Location of the symbol related to previous error)
extras.cs(6,30): error CS0261: Partial declarations of `mybindingtest.ReaderDocument' 
must be all classes, all structs or all interfaces
4

2 に答える 2

1

btouch存在するすべてのタイプを知っているわけではなく、基本的なタイプとユーザーが定義したタイプだけを知っています。この場合、これを 2 つのステップでバインドできます。

最初に としてバインドCGPDFDocumentRefし、 としてIntPtr装飾し[Internal]ます。

[Export("initWithPDFDocument:filepath:")]
[Internal]
IntPtr Constructor (IntPtr document, string path);

次に、Extra.csファイルにカスタム コンストラクターを追加します。

partial public class YourType {
   public YourType (CGPDFDocument doc, string path) : this (doc.Handle, path) { }
}
于 2013-03-03T15:17:19.393 に答える