問題タブ [nsnotificationcenter]

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 に答える
694 参照

xcode - iPad アプリでのコンテナ ビュー コントローラと単一のカスタム ビュー コントローラの比較

既存の iPhone アプリを iPad アプリ用に変換しています。iPhone アプリは、行の選択に基づいてカスタム ビュー コントローラー (UIViewController) をプッシュするカスタム ビュー コントローラー (UITableViewController) を最初にユーザーに提示するコンテナー ビュー コントローラー (UINavigationController) を使用して構築されました。

iPad アプリでは、ユーザーにカスタム UIViewController (コンテナー コントローラーなし) を直接提示し、UIPopoverController を介してさまざまなオプションを選択できるようにしています。myAppDelegate.m では、以下を使用してカスタム UIViewController をウィンドウに追加するだけです。

myCustomViewController.m では、viewWillAppear で方向変更通知を登録することにより、デバイスの回転に大きく基づいてビューを変更しています。

次に、didRotate: メソッドで方向をテストしており、非常に奇妙な結果が得られています。ビューをロードするだけで3回呼び出されていますか? また、ビューの前の図面に対応する方向を報告しているようですか?

私はドキュメントを読んでいましたが、ウィンドウにサブビューを追加しても(コンテナクラスなしで)viewWillAppear:メソッドが呼び出されないようですが、私の場合は信頼できないだけで呼び出されているようです。

このアプリに使用する必要がある他のパターンはありますか? 単一のカスタム ビューをロードし、2 つのポップオーバー コントローラーを使用したいだけです (他のナビゲーションはありません)。

-デリック

ところで、カスタム viewController をアプリ デリゲートの UINavigationController にプッシュした場合とまったく同じように動作します。このアプリにはナビコントローラーは必要ありません。

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

ios - UI changes on background thread due to NSUserDefaultsDidChangeNotification

I am debugging an issue that occasionally causes my app to crash with a WebTryThreadLock message in the crash report. It looks like the app is crashing because the NSUserDefaultsDidChangeNotification is being sent and received on a background thread. I make UI changes when the notification is received and understand that making UI changes on a background thread is highly advised against.

If NSUserDefaultsDidChangeNotification is sometimes (if not always) sent on a background thread, what is the best way to handle this? Something like the following seems excessive but potentially necessary.

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

xcode - NSNotificationCenter 追加?

あるビューから別のビューに切り替えると、ロードされようとしているビューに通知を呼び出してコンテンツを更新するという 2 つのビューがあります。奇妙なことに、ビューが初めてロードされるときは 1 回呼び出され、次回は 2 回呼び出されるということです。ビューが読み込まれるたびに追加され続けるためだと結論付けました。dealloc は呼び出されないため、まだそこにあり、追加し続けます。

この問題を解決するために追加される前に、通知が存在するかどうかを確認する方法はありますか?

これが私のviewDidLoadにあるものです

そして私のdealloc:

ありがとう!
コールトン

編集1:

ビューを UINavigationController に表示し、ビューを切り替えます。別のビューを更新するコードは次のとおりです。

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

iphone - NSNotification クエリ -- 再帰的なビュー コントローラーの呼び出しと同じ通知の複数回の登録

NSNotificationCenter について質問があります。同じプッシュ通知に登録している 3 つのビュー コントローラーがあり、アプリのフローは次のようになります。

ケース 1:

  1. View Controller 1 通知登録
  2. View Controller 2 が初期化され、View Controller 1 からモーダルとして表示されます
  3. View Controller 2 通知登録
  4. View Controller 3 が初期化され、View Controller 2 からモーダルとして表示されます
  5. View Controller 3 通知登録
  6. 通知が発生します

すべてのビュー コントローラー (VC1、VC2、および VC3) がこの通知に応答しますか? 最上位のビュー コントローラーのみがこの通知に応答するようにします。ビュー階層内の他の VC の場合、通知が個別に発生します。

ケース 2:

  1. View Controller 1 通知登録
  2. View Controller 1 は自己呼び出しを取得し、前の View Controller でモーダルとして表示されます。
  3. View Controller 1 を再度通知登録する
  4. 手順 2 と 3 をもう一度繰り返します。
  5. 通知が発生します

ここで、最上位の VC がこの通知に応答するようにします。ビュー階層内の他の VC の場合、通知が個別に発生します。6. 通知が発生する

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

ios - Xcode - 私を夢中にさせている iOS のメモリ リーク

ここでのコードは、RootViewController から起動されるモーダル ビューであり、ムービーの下にサムネイル フィルムストリップを含むビデオを表示し、次にムービーにバインドされた時間指定された指示を表示します。

それはすべて機能しますが、メモリリーク/リリースの欠如があり、それを見て、3日間かけて修正しようとしただけではわかりません。助けを求める時が来ました...

コメントアウトして NSNotificationCenter を無効にすると (.m で強調表示されます)、メモリに関する問題は発生せず、時間指定されたテキストが保持されます。しかし、サムネイルもありません。[[NSNotificationCenter alloc] removeObserver:self];私はそれが私のためにそれを取り除くかどうかを確認するために多くのポイントで挿入しようと しました. しかし、残念ながら、役に立ちませんでした。

「backgroundTimer」もリリースしようとしましたが、コンパイルして実行しようとしてもあまり感銘を受けませんでした。

本質的に、モーダル ビューを初めてロードするときは、まったく問題はなく、すべてが素晴らしいよう-(IBAction)close:(id)sender;に見えます。約 30% (サムネイル生成で使用される量とほぼ同じ) 増加し、モーダル ビューを再起動するたびにほぼ同じ量だけ増加します。

私はこれに初心者であり、エラーは知っている人にとっては血まみれのばかげたものである可能性が高いことを心に留めておいてください. しかし、このプロジェクトを成功させるためには、あなたが私に投げかけてくる嫌がらせは喜んで受け入れます。

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

.h

.m

—</p>

—</p>





このアプリはすでに UIWebView (単純な sux) を大量に使用しているため、正しく実行しようとしています。

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

ios - KVO 対 NSNotifications

sのより「一般的な」(そして私の意見ではより堅牢な) 機能の代わりに KVO を使用する利点はありますNSNotificationか?

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

objective-c - iOS: コントローラー間でメッセージを送信する

menuviewcontroller に menucell があり、mapviewcontroller にボタンがあります。

mapviewcontroller のボタンをクリックすると、メニューセルの内容を null に設定したいと考えています。

どうすればいいですか?

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

iphone - NSNotificationremoveObserverの問題

私は脳が損傷しているか、NSNotificationCenterを理解していないかのどちらかです

問題は、オブザーバーを作成し、次の行で次のように削除しようとする場合です。

私は得る

ポイントを作るために、行の後にオブザーバー行を追加および削除します。私のコードでは、deallocでremoveを使用します。

では、そもそもオブザーバーを追加しなかったと私に教えてくれるアイデアはありますか?

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

iphone - Objective-C++を使用してC++クラスのNSNotificationCenterにオブザーバを追加する方法は?

Objective-C をサポートするために、最近 *.cpp から *.mm に名前を変更した C++ クラスがあります。したがって、次の Objective-C コードを追加できます。

  • c++ で notificationHandler メソッドを作成するにはどうすればよいですか?
  • addObserver:self プロパティの設定は機能しますか?
0 投票する
1 に答える
320 参照

ios - データが変更された場合のNSNotification

RSSフィードを解析するプログラムがあるとしましょう。

更新をチェックし続けるスレッドで実行されるメソッドがあります。更新が見つかった場合、NSNotificationが作成されます。これはばかげた実装ですか?

また、更新されたelementIdなど、NSNotification内でカスタムパラメーターを渡すことは可能ですか。