問題タブ [objective-c-blocks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1009 参照

iphone - ブロックとコアモーションでクラッシュ

加速度センサーの更新に Core Motion のプッシュ ハンドラーを使用しています。

このコードはクラッシュします。ブロックをまったくコピーしないと、一時停止/再開時に断続的にクラッシュします。外すと正常にautorelease動作しますが、漏れが発生すると思います。

また、ブロックをivarに割り当て、後に解放しようとしました[motionManager stopAccelerometerUpdates]。同様にクラッシュします。

どうして?copy/retainと / のreleaseバランスを取る必要があるといつも思っていましたautorelease

参照: Objective-C でのブロックのコピー (つまり、インスタンス変数へのコピー)

0 投票する
2 に答える
2437 参照

objective-c - ブロックメモリ管理

この Apple リファレンスには、objective-c のブロック オブジェクトの概念的な概要があります。

http://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Blocks/Blocks.pdf

しかし、それは私に関係があり、他の人に関係する可能性のある 2 つのトピックを実際には説明していません。最初の質問は次のようなものです: ブロック参照に nil を代入できますか? または、NULL を使用する必要がありますか? または、どちらも使用できませんか?

2 番目の問題は、メモリ管理の領域にあります。たとえば、スタック上にブロック オブジェクトを作成するメソッドを宣言しました。

このオブジェクトは、あるスコープ内で作成され、スコープ外に出ると破棄されます。しかし、TheClass オブジェクトは実際には、この (ほとんど破棄された) ブロックへの参照を格納しようとしています。

このようなブロックのクラス プロパティを宣言するにはどうすればよいですか? これら2つの違いは何ですか:

?

Apple のドキュメントでは、ブロック コピーはブロックをヒープに移動すると明確に述べられています。しかし、そのままにしておくとどうなるでしょうか。makeTheClassメソッドのスコープ外に出た後、破棄されますか?

0 投票する
1 に答える
1960 参照

objective-c - iOS で実行時にブロックが利用可能かどうかを確認する

実行時にブロックの可用性をテストする必要があるため、iOS 3 との下位互換性を処理できます。何かヒントはありますか?

編集:これまでのところ、私はやっています うまくいっているif (!NSClassFromString(@"NSBlockOperation")) {...} ようです...

0 投票する
3 に答える
15148 参照

iphone - CoreData を使用したグランド セントラル ディスパッチ (GCD)

アプリケーションで Grand Central Dispatch (GCD) を使用して、重い作業を行っています。アプリケーションは、データ ストレージの目的で Core-Data を使用しています。これが私のシナリオです(関連する質問とともに):

の結果として[self saveManagedObjectContext]fetchResultsControllerデリゲート メソッドが自動的に呼び出されます。その結果、UI 更新ロジックが開始されます。

今私の質問は、main_queueforを使用する必要があり-saveManagedObjectContextますか? ですべての操作を実行する必要がNSManagedObjectありmain_queueますか? を更新する一部の操作には、NSManagedObject2 ~ 3 秒かかる場合があります。お知らせ下さい。

0 投票する
1 に答える
1233 参照

iphone - グランドセントラルディスパッチ(GCD)と非同期API

TwitterAPIを使用してツイートを投稿しています。時間がかかる場合があるので、バックグラウンドで「ツイート投稿」操作を実行したいと思います。そのために私は次のようにGCDを使用しています:

問題は、デリゲートコールバックを取得していないことです。私は何が欠けていますか?

0 投票する
1 に答える
9679 参照

objective-c - iOS 4 - ブロックをクラスのメンバーとして使用する

クラスのメンバーとして使用されるブロックの構文を誰かが理解するのを手伝ってくれることを望んでいました. 実際に問題なく動作するコードがいくつかあります。

typedefこれは機能しますが、ステートメントの構文を理解したいと思います。実際に typedef を使用する必要があるかどうか。

私が読んだことによるとtypedef、コードがより明確になるため、この状況での使用が推奨されます。しかし、なしでこれを行おうとすると、まったくコンパイルできませんでしたtypedef。typedef についての私の理解では、構文は基本的に次のとおりでした。

そのような:

しかし、私のtypedefステートメントの構文はこれと一致しません。だから私の質問は:

  • ステートメントの構文がtypedef 他のステートメントとどのように異なるの typedefでしょうか / 私が使用している構文は実際にコンパイラーにとって何を意味するのでしょうか?
  • を使用せずにブロックをクラスのメンバーとして持つことは可能typedefですか?
0 投票する
3 に答える
2876 参照

objective-c - ブロックとスレッド

c / cocoaのブロックがメインスレッドとは別のスレッドで実行されるかどうかを知りたいです。UI の応答性を維持しながら、計算コストの高いコードを実行するのに役立ちますか?

0 投票する
9 に答える
58467 参照

objective-c - ブロックで「自己」のサイクルを保持する

この質問はかなり基本的なものではないかと思いますが、ブロックに取り掛かっている多くの Objective-C プログラマーに関係があると思います。

constブロックは内部で参照されるローカル変数をコピーとしてキャプチャするため、ブロック内で使用selfすると、そのブロックがコピーされた場合に保持サイクルが発生する可能性があると聞いています。したがって、ブロックをコピーするのではなく、__block強制的にブロックを直接処理するために使用することになっています。self

ただの代わりに

私が知りたいのは次のことです:これが本当なら、醜さを避ける方法はありますか(GCを使用する以外に)?

0 投票する
1 に答える
1557 参照

objective-c - Objective-Cブロックに関する優れた紹介やドキュメントはどこにありますか?

Objective-Cでブロックを使用しようとしています。このチュートリアルを実行しましたが、ブロックについて詳しく知りたいです。

Objective-Cブロックとその使用法に関するより良いドキュメントやチュートリアルをどこで探すべきですか?

0 投票する
1 に答える
839 参照

iphone - BOOL*をALAssetsLibraryに渡す

こんにちは私はBOOLをに渡す必要があります

列挙ブロックには、次の署名があります。

そしてドキュメントは言う:

Stop::ブール値へのポインタ。列挙を停止するには、値をYESに設定します。

ただし、値をに設定しようとすると

次の警告が表示され、列挙が続行されます。

だから私の質問は、停止パラメータへのポインタとしてブール値を渡すにはどうすればよいですか?

どんな助けでも大歓迎です。