問題タブ [nsnotifications]
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.
cocoa - Cocoa のプロセス間でデータを渡すためのベスト プラクティス
64 ビットの Cocoa アプリケーションで次のことを行う必要がある問題を解決している最中です。
- アプリケーション内から 32 ビットの Cocoa ヘルパー ツール (コマンド ライン ツール) を生成します。このヘルパーはファイル (正確には QuickTime ムービー) を開き、32 ビットのみの API (Quicktime-C API) を使用してそのファイルに関する情報にアクセスします。
- 32 ビット プロセスから収集されたデータは、64 ビット アプリケーションに戻す必要があります。
- 64 ビット アプリは、32 ビット プロセスが完了するまで待ってから続行する必要があります。
Cocoa でこれを実現する方法はたくさんありますが、私が収集したものから、これらは 2 つのアプローチを取ることができます。
オプション 1: パイプを使用した NSTask
- NSTask を使用して 32 ビット プロセスを生成する
- NSTasks stdoutput をパイプにリダイレクトし、64 ビット プロセスでそのパイプからデータを読み取ります。
- パイプからデータを解析します。これには、stdout からデータ (int、float、string など) への文字列の変換が含まれます。
オプション 2: NSDistributedNotificationCenter を使用した NSTask
- NSTask を使用して 32 ビット プロセスを生成する
- 32 ビット プロセスでデータの準備ができたら、NSNotification を分散通知センターに送信し、関連するすべてのデータを含むイベントに辞書を含めます。
- 64 ビット アプリで、同じ NSNotification にサブスクライブします。
それで、StackOverflowers に対する私の質問は、どのオプションが「より良い」ものですか?
どちらがより良い方法ですか?
どちらがより効率的ですか?
関与するコードが少なくなるように思われるため、オプション 2 に傾いています。これら 2 つのアプローチがうまくいかない場合、これを行うためのより良い方法はありますか?
iphone - notificationSender の指定方法 (ココアタッチ)
通知を設定するために私が見つけることができるすべての例は、次のようになります。
[nc addObserver:self selector:@selector(keyboardWillShow:) name: UIKeyboardWillShowNotification object:nil];
object は常に nil に設定されています。object は notificationSender であり、ドキュメントで次のように定義されています。
「オブザーバーが通知を受け取りたいオブジェクト。つまり、この送信者によって送信された通知のみがオブザーバーに配信されます。nil の場合、通知センターは通知の送信者を使用して、通知をオブザーバーに配信するかどうかを決定しません。」
特定の1つのテキストビューだけキーボード通知を受け取りたいので、addObserverにそれを伝えたいのですが、オブジェクトに対して何を与えるべきかわかりません。興味のあるテキストビューにバインドされているアウトレット変数を試しましたが、通知がまったく得られませんでした。
助言がありますか?
ios - 通知を受け取るオブジェクトをどこにどのように登録しますか?
たとえば、メモリが少なくなると、システムはUIApplicationDidReceiveMemoryWarningNotification
通知を送信します。その時点で Apple がドキュメントで述べているのはそれだけです。しかし、この通知はどこから来て、どのメソッドに送信されるのでしょうか? または、通知された内容をどこでどのように登録しますか?
iphone - 通知用のプロトコルが必要ですか?
NSURLConnectionを使用するclassDownloadがあります。すべてのNSURLConnectionイベントをclassDownloadに保持したいと思います。ClassAはclassDownloadを使用したいが、classDownloadではFinishと呼ばれるconnectionDidFinishLoadingなどの通知も受信します。classDownloadからClassAに通知を受け取るにはどうすればよいですか?
cocoa - NSRect 情報を使用して NSNotification を投稿する最良の方法は?
NSRect 情報を含む通知を投稿する最良の方法は何ですか?
これが私の現在のソリューションです(NSStringFromRectを使用)。
ただし、これが rect 構造体を送信する最良の方法であるかどうかはわかりません。
iphone - オブジェクトをユーザーデータとして NotificationCenter に送信する前に、オブジェクトを自動解放する必要がありますか?
メソッドを使用して通知を投稿する必要があり、反対側で取得できるようにカスタム クラスをpostNotificationName:object:userInfo:
渡しています。このまま使うべきかFileItem
userInfo
autorelease
または、オブジェクトをデフォルトの通知センターに渡した直後にオブジェクトを渡すことはalloc
できますか?release
オブジェクトをメッセージのパラメーターとして別のオブジェクトに渡すたびに、受信オブジェクトは必要に応じて保持を行い、そのパラメーターを安全に解放できると想定しているため、ここで規則を取得しようとしていますか?
iphone - NSNotificationCenter: オブジェクトは、投稿されたのと同じスレッドで通知を受け取りますか?
投稿オブジェクトのメソッドが完了して削除される前に、監視オブジェクトのメソッドがスタックにプッシュされると期待できるかどうかを知りたいです。
objective-c - NSNotificationCenter でパラメーター化されたメソッドを使用するには?
メソッド processit に dict を渡したいと思います。しかし、辞書にアクセスすると、EXC__BAD_INSTRUCTION が表示されます。
受信者メソッド:
私が間違っていることについて何か提案はありますか?
iphone - AsyncSocket と組み合わせて使用した場合の NSNotification の奇妙さ
AsyncSocket を使用して、iPhone アプリからサーバーに接続しています。サーバーからデータを受信したデリゲートで、tableView のデリゲートに tableView で reloadData をトリガーするように指示する通知をポストします。
そしてviewControllerで:
さて、これはまったく機能しません。通知は発生しますが、ViewController によって認識されません。ただし、applicationDidFinishLaunching で同じことを行うと、次のようになります。
viewControllerで受信した通知を受け取りました。
誰でも理由を知っていますか?別のスレッドにある AsyncSocket のデリゲート メソッドと関係がありますか?
前もって感謝します。
objective-c - NSNotificationCenter セレクターは、その NSNotification では機能しません
私はいくつかの C を含む Cocoa プロジェクトに取り組んでおり (objc には C が含まれていることはわかっています...)、NSNotificationCenter
s を理解しようとしています。状況は次のとおりです。
次のように宣言された構造体がありますtypedef struct {/*code here*/} structName;
私の- (id)init
方法では、
コールバック関数があります:
そして、私のセレクターのために:
ここで、その 2 番目をコメントアウトするとNSLog
、すべてが機能しているように見えます (つまり、「ここ」が出力されます)。しかし、そのままにしておくと、何も機能しないNSNotification
ようです。しかし、これは のオブジェクト、userInfo などの目的を無効にしているようNSNotification
です。
私は何を間違っていますか?また、自分の にアクセスできるようにするにはどうすれば修正できますstructName f
か?
@ネイサンさて、今私は持っています
...しかし、問題は残ります。これは私が修正したタイプミスと関係がありますか?
編集:
上記の2行を次のように変更しても問題は続きます