問題タブ [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.
iphone - Objective-Cのネストされたブロックのフォーマットのヒント
ここでコードフォーマットの聖戦を開始するつもりはありませんが、Objective-Cでネストされたブロックを最適にフォーマットする方法について誰かがアドバイスを持っているかどうか疑問に思っています。
これが私が今日書いたいくつかのコードです:
私はほとんどXcodeにフォーマットさせましたが、それはひどいことではありません。しかし、私は6か月後には、いくつかのバグを修正するためにこれに遭遇するのではないかと心配しています。
ネストされたブロックをできるだけ読みやすくする方法についてのポインタはありますか?
iphone - それらを変更するためにコードで IBOutlet 名を作成する方法は?
IB でセットアップされ、コードで IBOulets に接続されたいくつかの UILabels があるとします (label1、label2、label3、label4)。
コード内でこれらの変数名をどのように作成すれば、ラベルが NSArray から取得されるループ内でそれぞれのテキストを変更できるでしょうか。
疑似コードは次のとおりです。
上記の「labelx」を作成するにはどうすればよいですか? これはブロックを使用して行うことができますか?
objective-c - このキャレット ^ 構文の両側に void があるのはどういう意味ですか?
iPhone SDK 4.0 には、 type の 2 番目のパラメーターを必要とするUIApplication
新しいメソッドがあります。setKeepAliveTimeout:
void(^)(void)
2 番目のパラメーターの構文は正確には何を意味し、それに渡すことができる関数/ハンドラーをどのように宣言しますか?
FWIW以下は探しているものではありません...
iphone - バックグラウンド ブロック内の管理対象オブジェクトの削除
iPhone で、管理対象オブジェクトをバックグラウンドで削除しようとしました。
ではdeleteObjects
、別の managedObjectContext を使用します。これらのオブジェクトの一部をユーザー インターフェイスから削除すると、cleanUp
スレッドがバックグラウンドで実行されるとアプリがクラッシュします。エラーは、フォルトを完全に埋めることができないということです。
誰か助けてくれませんか?
c++ - (double(^)(int))foofooとは
cdeclには、 foofooをブロック(int)にキャストしてdoubleを返すことを(double (^)(int))foofoo
意味する例があります。
foofooをintの「ブロック」にキャストするとはどういう意味ですか?^
この文脈での記号の正確な意味は何ですか。通常、ビット単位のXORです。
objective-c - バックグラウンドのみのアプリケーションで Objective-C ブロックがリリースされない
バックグラウンドでのみ実行されるアプリケーションがあります ( LSBackgroundOnly
info.plist ファイルで指定することにより)。問題は、並列キューで実行するすべてのブロックが解放されないことです。コードはメモリ管理された環境で実行されます - GC は関与しません。
(簡略化された) コードは以下のようになります。Blubber は、テスト用に NSDate を保持するダミー クラスです。また、ログを記録するためretain
に 、release
、 を上書きします。dealloc
アプリケーションを通常の (つまり、バックグラウンドではない) アプリケーションに変更すると、UI を介して入力が行われるたびにブロックが解放されるのを観察できます (フォーカスを別のウィンドウに変更するだけでも十分です)。私の backgorund アプリは HID USB ドライバーを介して直接入力を受け取り、ウィンドウやメニュー バーがないため、これは発生しません。
実行ループを手動で強制する方法や、完成したブロックを解放するようにキューに指示する責任があるものはありますか?
(ブロックによって保持されていた他のすべてのオブジェクトも解放されず、大量のメモリ リークが発生します。これらのリークは、Leaks ツールまたは ObjectAllocations ツールでは検出できませんが、top を使用するとメモリ消費が急増することが観察できます。)
objective-c - オブジェクトを受け取りブール値を返す Objective-C ブロック
この定義に適合するブロックを書いてください: (BOOL(^)(id))block
.
私が得た最も近いものは次のとおりです。
しかし、これc
を望んでいるメッセージで渡すこと(BOOL(^)(id))block
はできないようです。
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が非推奨になり、その後姿を消すのであれば、私はむしろ永続的な方向に進んでいきたいと思います。
ご清聴ありがとうございました。
iphone - Objective-Cブロックでオブジェクトを解放する
AVAssetExportSessionのように完了ハンドラーと非同期で戻るObjective-Cオブジェクトを使用する場合、次のようなコードで問題が発生しますか?
InstrumentsはexportSessionをリークとして報告します。また、同じ方法を使用する独自のクラスがいくつかあり、それらもリークとして報告されます。
私が読んだすべてのことから、コードは適切なメモリ管理ルールに従う必要があるようですが、何かがアップしている必要があります。この記事へのリンクを見つけましたが、循環保持を引き起こしているとは思いません。
objective-c - Objective-CブロックはJavaScriptの無名関数に似ていますか?
ブロックの概念を理解しようとしています。私がこれまで読んだことは、概念的にはJavaScriptの無名関数に似ているようです。これは正しいです?