NSView#dataWithPDFInsideRect の代わりに #bitmapImageRepForCachingDisplayInRect: を使うこともできる。
HDMT(July,2006)によれば「再現性、使用メモリ、パフォーマンスともに、かなりいい線いってる」とのこと。
旧コード
NSData* data = [_view2 dataWithPDFInsideRect:[_view2 bounds]];
NSImage *image1a = [[[NSImage alloc] initWithData:data] autorelease];
data = [image1a TIFFRepresentation];
NSBitmapImageRep* bitmap = [NSBitmapImageRep imageRepWithData:data];
これが下記の様になる。
新コード
NSBitmapImageRep* bitmap = [_view2 bitmapImageRepForCachingDisplayInRect:[_view2 bounds]];
[_view2 cacheDisplayInRect:[_view2 bounds] toBitmapImageRep:bitmap];
動作は問題ないようだ。コードもすっきりして良い。
NSView Class Reference - bitmapImageRepForCacingDisplayInRect: