從綁定API的文檔,我使用:如何將NSDictionary()與值[PSPDFAnnotationParser類]/[MyCustomAnnotationParser類]轉換爲MonoTouch?
overrideClassNames
使用此功能可以使用,而不是默認PSPDF * 類的具體子類。例如將[PSPDFAnnotationParser class]/ [MyCustomAnnotationParser class]的條目添加爲鍵/值對,以使用自定義 子類。 (MyCustomAnnotationParser必須是 的子類PSPDFAnnotationParser)如果重寫的類是 而不是覆蓋類的子類,則會引發異常。注意:保存到磁盤時不會被序列化爲 。
@屬性(非原子,強)的NSDictionary * overrideClassNames
這裏就是我試過,但不起作用。顯然不是字符串是必需的,但實際類型或東西。我如何在MonoTouch中使用它?
var oClassDic = new NSMutableDictionary();
oClassDic.Add(new NSString("[PSPDFAnnotationParser class]"), new NSString("[PSPDFKitAnnotationParser class]"));
oDoc.OverrideClassNames = oClassDic;
我喜歡這個創建的PSPDFKitAnnotationParser:一般
[Register("PSPDFKitAnnotationParser")]
public class PSPDFKitAnnotationParser : PSPDFAnnotationParser
{
public PSPDFKitAnnotationParser() : base()
{
}
public PSPDFKitAnnotationParser (PSPDFDocumentProvider provider) : base(provider)
{
}
public PSPDFKitAnnotationParser (IntPtr handle) : base(handle)
{
}
public PSPDFKitAnnotationParser (NSObjectFlag t) : base(t)
{
}
public PSPDFKitAnnotationParser (NSCoder coder) : base(coder)
{
}
我不得不調整它一點:oClassDic.Add(新NSObject的(新的Class( 「PSPDFAnnotationParser」)手柄),新NSObject(new Class(「PSPDFKitAnnotationParser」)。Handle)); – Krumelur
現在我正面臨着本機故障。我是否必須保留對將要創建的管理對象的引用?如果是,如何? – Krumelur
@Krumelur我不認爲'Class'是一個'NSObject'(至少它沒有綁定那樣),所以包裝它不可能是答案。你可能需要使用'Add'調用的低級代碼(使用'Handle')並直接調用它(發送消息)。 – poupou