如何绑定CGPDFDocumentRef?

时间:2013-03-03 10:44:27

标签: xamarin.ios

我假设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);

AND在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

2 个答案:

答案 0 :(得分:1)

btouch不知道存在的每种类型,只知道基本类型和您定义的类型。在这种情况下,您可以分两步绑定它。

首先将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) { }
}

答案 1 :(得分:0)