1

質問する前に、stackoverflow 内と google で多くの検索を試みました。同様の質問のようですが、私には答えがありません。だから聞いてみます!!

私は、uitoolbar と uiwebview の中にある presentModalViewController として表示されるビュー コントローラーを持っています。Web ビューでは、pdf ファイルが表示されます。デフォルトの Web ビューでは、テキストを選択して、標準の UIMenuController のコピー機能を表示できます。この時点で View Controller を閉じると、このログに記録されたエラーでアプリがクラッシュし、コンソールに次のように表示されました。

libobjc.A.dylib`objc_msgSend:
0x372daf68:  teq.w  r0, #0
0x372daf6c:  beq    0x372dafaa               ; objc_msgSend + 66
0x372daf6e:  push.w {r3, r4}
0x372daf72:  ldr    r4, [r0]
0x372daf74:  lsr.w  r9, r1, #2
0x372daf78:  ldr    r3, [r4, #8]
0x372daf7a:  add.w  r3, r3, #8
0x372daf7e:  ldr    r12, [r3, #-8]
0x372daf82:  and.w  r9, r9, r12
0x372daf86:  ldr.w  r4, [r3, r9, lsl #2]
0x372daf8a:  teq.w  r4, #0
0x372daf8e:  add.w  r9, r9, #1
0x372daf92:  beq    0x372dafa6               ; objc_msgSend + 62
0x372daf94:  ldr.w  r12, [r4]
0x372daf98:  teq.w  r1, r12
0x372daf9c:  bne    0x372db17e               ; objc_msgSendSuper_stret + 34
0x372daf9e:  ldr.w  r12, [r4, #8]
0x372dafa2:  pop    {r3, r4}
0x372dafa4:  bx     r12
0x372dafa6:  pop    {r3, r4}
0x372dafa8:  b      0x372dafb0               ; objc_msgSend_uncached
0x372dafaa:  mov.w  r1, #0
0x372dafae:  bx     lr

これが私のエラーか uiwebview のバグかわかりません

また、pdf ページをレンダリングするために CGPDFDocument を使用しようとしましたが、UIMenuController を表示してテキストを選択し、ドキュメント内で標準のコピー アクションを実行することができません。私もこの優れたプロジェクトから始めようとしましたが、これでもコピーアクションを実行できません - https://github.com/vfr/Reader

基本的にこれらは使用されるコードです。ARCを使用してiOS 5を使用しています

- (void)viewDidLoad
{
[super viewDidLoad];

if (![urlPdfFile hasPrefix:@"http"]) {

NSString *ofType = [urlPdfFile pathExtension];
NSString *pathForResource = [[[urlPdfFile lastPathComponent] componentsSeparatedByString:@"."] objectAtIndex:0];
NSString *inDirectory = [urlPdfFile stringByDeletingLastPathComponent];

NSString *url = [[NSBundle mainBundle] pathForResource:pathForResource 
                                                ofType:ofType 
                                           inDirectory:inDirectory];

[self loadCatalogueFile:url];
} else {
[self loadFile:urlPdfFile];
}

}


- (void)viewDidUnload
{
[self setMyWebView:nil];
[super viewDidUnload];
}

-(void)viewDidDisappear:(BOOL)animated {    
[super viewDidDisappear:animated];
[self.view removeFromSuperview];
self.view=nil;
[self viewDidUnload];
}

-(void)loadCatalogueFile:(NSString*)url {

 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:url]];
[myWebView loadRequest:request];
}


-(void)loadFile:(NSString*)url
{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[myWebView loadRequest:request];
}

-(void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
//
}

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
//
}

- (void)webViewDidStartLoad:(UIWebView *)webView {
//
}

ご助力ありがとうございます!!!

4

1 に答える 1

0

同じ問題がありました。

UIWebViewを保持するView Controllerを保持して再利用したことが原因でした。これを修正するには、毎回ビュー コントローラを最初から作成するだけです。

于 2012-07-25T10:46:29.290 に答える