2

MonoTouchでUIGraphics.BeginPDFContextを呼び出すときにPDFドキュメント情報を提供するのに問題があります。CGPDFInfoを受け取るオーバーロードとNSDictionaryを受け取るオーバーロードを使用しようとしましたが、Authorなどの文字列値を指定すると、両方ともSIGSEGVでクラッシュします。

次のコードにより、SIGSEGVが発生します。

var info = new CGPDFInfo()
{
    AllowsCopying = true,
    AllowsPrinting = true,
    Author = "My Name",// Setting any string property crashes
};
UIGraphics.BeginPDFContext(file, RectangleF.Empty, info); 

スタックトレースは次のとおりです。

at(ラッパー管理からネイティブ)MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr_IntPtr(intptr、intptr、intptr、intptr)at MonoTouch.Foundation.NSMutableDictionary.LowlevelSetObject(MonoTouch.Foundation.NSObject、intptr)[0x0001 /Source/monotouch/src/shared/Foundation/NSMutableDictionary.cs:394 at MonoTouch.CoreGraphics.CGPDFInfo.ToDictionary()[0x00033] in /Developer/MonoTouch/Source/monotouch/src/shared/CoreGraphics/CGContextPDF.cs:161 /Developer/MonoTouch/Source/monotouch/src/UIKit/UIGraphics.cs:99のMonoTouch.UIKit.UIGraphics.BeginPDFContext(string、System.Drawing.RectangleF、MonoTouch.CoreGraphics.CGPDFInfo)[0x00000]

Xamarinフォーラムでも質問しましたが、回答がありませんでした。

NSMutableDataを最初のパラメーターとして受け取るBeginPDFContextのオーバーロードを使用したいのですが、ドキュメント情報にNSDictionaryが必要であり、クラッシュしない値を提供する方法がわかりません。何か案は?

4

1 に答える 1

1

念のために言っておきますが、これはMonoTouchのバグです(現在は修正されています)。

https://bugzilla.xamarin.com/show_bug.cgi?id=8879

于 2012-12-11T13:29:43.000 に答える