3

完了ハンドラブロックが呼び出されないようです。保存に失敗したということですか?self.document.fileURL有効に見えるコンソールに poします。

[self.document saveToURL:self.document.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
// set breakpoint here, but it won't stop
            [[[Fetcher alloc]init] fetchImageFromSring:HTTP_REQUEST inContext:self.document.managedObjectContext];
        }];
4

1 に答える 1

1

保存が成功したかどうかに関係なく、完了ハンドラー ブロックを呼び出す必要があります。

Appleの completionHandler について

保存操作が終了
したときに実行されるコードを含むブロック。このブロックは値を返さず、1 つのパラメーターを持ちます。success 保存操作が
成功
した場合は YES、それ以外の場合は NO です。
このブロックは呼び出しキューで呼び出されます。

この行にブレークポイントを設定して、実行されることを確認しましたか

[self.document saveToURL:self.document.fileURL forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {

編集
問題は、使用しているデバッガーの種類にあると思います。(このSOの質問から)
使用していることを確認してくださいlldb

デバッガーを変更しなくても、ブロックが実行されていることをいつでも確認できます NSLog(@"block is running, save successfully - %d", success)

于 2012-09-29T00:49:58.883 に答える