問題タブ [singleton-methods]
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.
node.js - エクスポートされたモジュール関数が 2 回呼び出されるとエラーをスローします
関数をエクスポートする Node.js モジュールがあります。
ここではシングルトン パターンを使用しようとしていますが、それほど手間はかかりません。これはライブラリ用であり、ライブラリ コードがこの関数を誤って複数回呼び出す可能性がありますが、コードの定義はユーザーに依存する必要があるため、ユーザーが適切なシングルトン パターンを実装することを保証できません。 .
エクスポートされた関数が複数回呼び出された場合にエラーをスローするために使用できる適切なパターンはありますか?
私はこのようなことを考えています:
明確にするために、次のことはよくありません。
いくつかのユースケースでは十分かもしれませんが、いくつかの理由から標準のシングルトン コードを廃止しようとしています。
require 関数のモンキーパッチがこれに役立つとは思いませんが、多分。
現在、そのようなモジュールをロードする私のコードは次のようになっています。
問題は、コードベースのどこかで呼び出すことができることです
また。コードベースが大きくなってきたので、早く失敗したいです。
私の考えでは、最初に呼び出されたら、 fn を再定義するのが最善の方法です。
(1) ローカル変数 fn を次のように設定する必要があります
さらに重要なこと (2)
module.exports 値をに設定する必要があります
意味があることを願っています
ios - iOSで継続的に値を更新するメインviewcontrollerでユーザー定義メソッドを作成するには?
私は自分で目的 c を学びましたが、そのためのコースを受講したことはありません。そのため、iOS アプリの作成中に些細なことで混乱することがあります。この質問は非常に不自由かもしれませんが、解決策が見つからなかったか、解決策を理解できませんでした。これが私の状況です:
私のアプリには単一のView Controller(デフォルトのもの)が含まれています。加速度計、ジャイロスコープ、磁力計から連続的な値を取得し、その値を使用して、歩行者推測航法 (PDR) を使用してユーザーの位置を推定したいと考えています。この目的のために、CoreMotion を使用motionManager
し、ヘッダー ファイルに CLMotionManager() プロパティを作成しました。このマネージャーを使用して、センサーが使用可能かどうかを確認し、その値を取得できます。次に例を示します。
同様に、ジャイロスコープと磁力計から値を取得できます。IBAction
ボタンを押した後、メソッド内でこれらの値を次のように取得します。
PDR 操作は、次のメソッドで次のように行われます。
さて、私の質問は次のとおりです。
1) メソッドから連続 PDR 操作値を取得するthePDROperationWith::
方法は? メソッド内でこのメソッドを呼び出しましstartSensor
たが、ボタンを押したときに一度だけ値を取得します。さらに、このメソッドをヘッダー ファイルでも (ユーザー定義のNSObject
サブクラスのように) 宣言する必要がありますか?
2)ユーザー定義メソッドとデリゲートメソッドの違いは何ですか
//a method in CLBeaconManager delegate
-(void)beaconManager:(CLBeaconManager*)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
//code
}
?
このデリゲート メソッド (正しい用語を使用していると思います) は継続的に実行され、定義済みのビーコンの範囲を設定しますCLBeaconRegion
。どうすれば私の目的のためにそのような方法を作ることができますか?
ありがとうございました。