問題タブ [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 投票する
3 に答える
1825 参照

iphone - Objective-Cのネストされたブロックのフォーマットのヒント

ここでコードフォーマットの聖戦を開始するつもりはありませんが、Objective-Cでネストされたブロックを最適にフォーマットする方法について誰かがアドバイスを持っているかどうか疑問に思っています。

これが私が今日書いたいくつかのコードです:

私はほとんどXcodeにフォーマットさせましたが、それはひどいことではありません。しかし、私は6か月後には、いくつかのバグを修正するためにこれに遭遇するのではないかと心配しています。

ネストされたブロックをできるだけ読みやすくする方法についてのポインタはありますか?

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

iphone - それらを変更するためにコードで IBOutlet 名を作成する方法は?

IB でセットアップされ、コードで IBOulets に接続されたいくつかの UILabels があるとします (label1、label2、label3、label4)。

コード内でこれらの変数名をどのように作成すれば、ラベルが NSArray から取得されるループ内でそれぞれのテキストを変更できるでしょうか。

疑似コードは次のとおりです。

上記の「labelx」を作成するにはどうすればよいですか? これはブロックを使用して行うことができますか?

0 投票する
4 に答える
7042 参照

objective-c - このキャレット ^ 構文の両側に void があるのはどういう意味ですか?

iPhone SDK 4.0 には、 type の 2 番目のパラメーターを必要とするUIApplication新しいメソッドがあります。setKeepAliveTimeout:void(^)(void)

2 番目のパラメーターの構文は正確には何を意味し、それに渡すことができる関数/ハンドラーをどのように宣言しますか?

FWIW以下は探しているものではありません...

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

iphone - バックグラウンド ブロック内の管理対象オブジェクトの削除

iPhone で、管理対象オブジェクトをバックグラウンドで削除しようとしました。

ではdeleteObjects、別の managedObjectContext を使用します。これらのオブジェクトの一部をユーザー インターフェイスから削除すると、cleanUpスレッドがバックグラウンドで実行されるとアプリがクラッシュします。エラーは、フォルトを完全に埋めることができないということです。

誰か助けてくれませんか?

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

c++ - (double(^)(int))foofooとは

cdeclには、 foofooをブロック(int)にキャストしてdoubleを返すことを(double (^)(int))foofoo意味する例があります。

foofooをintの「ブロック」にキャストするとはどういう意味ですか?^この文脈での記号の正確な意味は何ですか。通常、ビット単位のXORです。

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

objective-c - バックグラウンドのみのアプリケーションで Objective-C ブロックがリリースされない

バックグラウンドでのみ実行されるアプリケーションがあります ( LSBackgroundOnlyinfo.plist ファイルで指定することにより)。問題は、並列キューで実行するすべてのブロックが解放されないことです。コードはメモリ管理された環境で実行されます - GC は関与しません。

(簡略化された) コードは以下のようになります。Blubber は、テスト用に NSDate を保持するダミー クラスです。また、ログを記録するためretainに 、release、 を上書きします。dealloc

アプリケーションを通常の (つまり、バックグラウンドではない) アプリケーションに変更すると、UI を介して入力が行われるたびにブロックが解放されるのを観察できます (フォーカスを別のウィンドウに変更するだけでも十分です)。私の backgorund アプリは HID USB ドライバーを介して直接入力を受け取り、ウィンドウやメニュー バーがないため、これは発生しません。

実行ループを手動で強制する方法や、完成したブロックを解放するようにキューに指示する責任があるものはありますか?

(ブロックによって保持されていた他のすべてのオブジェクトも解放されず、大量のメモリ リークが発生します。これらのリークは、Leaks ツールまたは ObjectAllocations ツールでは検出できませんが、top を使用するとメモリ消費が急増することが観察できます。)

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

objective-c - オブジェクトを受け取りブール値を返す Objective-C ブロック

この定義に適合するブロックを書いてください: (BOOL(^)(id))block.

私が得た最も近いものは次のとおりです。

しかし、これcを望んでいるメッセージで渡すこと(BOOL(^)(id))blockはできないようです。

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

uiview - アニメーション中のUIScrollViewタッチイベントはanimateWithDurationで起動しませんが、UIView beginAnimationsで正常に動作します:

UIViewアニメーションを使用してプログラムでスクロールしているUIScrollViewサブクラスがあります。

アニメーションの実行中に、ユーザーがスクロールビューのUIImageViewコンテンツをタップまたはズームインできるようにしたいと思います。

これに似た処方を使用している間、これはうまく機能しました:

現在、iOS 4.0以降、UIView beginAnimations:は推奨されていません。そこで、ブロックとUIView animateWithDurationを使用してコードを更新しようとしました。スクロールは、上記と同じように機能します。

重要で厄介な違いは、アニメーション中、UIScrollViewおよびその他のビューがイベント処理メソッドに応答しなくなることです。

また:

ズームしようとすると呼び出されます。

わかりやすくするために編集:タッチイベントに応答するUIViewはありません。これは、UIScrollViewだけに限定されません。UIScrollViewのピアUIToolbarは、タッチイベントに応答しません。また、UIScrollViewのピアのサブビューである他のボタンも応答しません。アニメーションの進行中は、親UIView全体がユーザーインタラクションからフリーズしているように見えます。繰り返しますが、アニメーションが完了すると、上記のすべてのUIViewが再び応答します。

これらはすべて、アニメーションの状態に関係なく、UIView beginAnimations:定式化で呼び出されます。

私のanimateWithDuration:コードは少し異なりますが、違いは重要ではありません。アニメーションが完了するとすぐに、上記のタッチイベントが再び呼び出されます...

これが私のアニメーションコードです:

上記のアニメーションブロック中に発生する唯一のイベントハンドラーは次のとおりです。

それで、質問:私は-Appleの推奨されていないラベルを無視し、beginAnimation定式化を使い続けるべきですか?hitTestを使用してズームやその他のタッチベースのイベントを再実装する必要がありますか?この問題に立ち向かうのに役立つアニメーションブロック間の実装の違いについての知識はありますか?私が行方不明になっている明らかなものはありますか?

私はAppleの新しい開発者なので、彼らの落胆したタグをどれほど真剣に受け止めるべきかわかりません。しかし、このAPIが非推奨になり、その後姿を消すのであれば、私はむしろ永続的な方向に進んでいきたいと思います。

ご清聴ありがとうございました。

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

iphone - Objective-Cブロックでオブジェクトを解放する

AVAssetExportSessionのように完了ハンドラーと非同期で戻るObjective-Cオブジェクトを使用する場合、次のようなコードで問題が発生しますか?

InstrumentsはexportSessionをリークとして報告します。また、同じ方法を使用する独自のクラスがいくつかあり、それらもリークとして報告されます。

私が読んだすべてのことから、コードは適切なメモリ管理ルールに従う必要があるようですが、何かがアップしている必要があります。この記事へのリンクを見つけましたが、循環保持を引き起こしているとは思いません。

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

objective-c - Objective-CブロックはJavaScriptの無名関数に似ていますか?

ブロックの概念を理解しようとしています。私がこれまで読んだことは、概念的にはJavaScriptの無名関数に似ているようです。これは正しいです?