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が必要であり、クラッシュしない値を提供する方法がわかりません。何か案は?