問題タブ [subclassing]

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 投票する
4 に答える
775 参照

iphone - Objective C -- サブクラスのインスタンス変数の型を狭めますか?

サブクラスで許可されている ivar の型を絞り込むことは可能ですか? このようなもの:

その正確なコードを試してみたところ、Xcode でコンパイル エラーが発生しました。私はそれを回避する方法があるかどうか疑問に思っています。

私が取り組んでいるプロジェクトでは、このような状況が多く発生します。キャストを使用してコードを機能させることができることを理解しています。しかし、そうすると非常に多くのキャストを作成することになり、より良い方法があるかどうか疑問に思っています.

0 投票する
6 に答える
1094 参照

ios - コンパイラのUIViewサブクラスの使用をヒントにする方法

単一のUIWebViewを担当するUIViewControllerのサブクラスがあります。

-(void)loadViewこれは単純なケースなので、UIWebViewをオーバーライドしてインスタンス化し、コントローラーのviewプロパティを割り当てます。

UIWebViewのメソッドを呼び出すまではこれで問題ありません。例えば...

...コンパイラの警告につながります...

...viewプロパティがとして宣言されているためUIView

、警告はキャストで簡単に解決されます...

...しかし、私がやりたいのは、インターフェイスに正しいタイプのヒントを提供することです。viewでプロパティをオーバーライドしようとしましたMyViewController.hが、これもコンパイラを混乱させます。

これが私がしていることであり、これが私がしていることであり、すべて大丈夫であることを私が知っていることをコンパイラー(および私の仲間)に伝える方法はありますか?(そうでない場合は、キャストに固執すると思います。)

TIA

編集: marcus.ramsdenの答えに従ってビュープロパティを再宣言しようとしました:これにより警告(およびキャストの必要性)がなくなりましたが、ビューがまったく表示されなくなりました!コントローラーが要求されたときにUIView(サブクラス)を返すので、なぜこれが必要なのかわかりません...

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

asp.net-mvc - MVCUpdateModelとサブクラスと基本クラス

実行時に取得されるサブクラスにUpdateModelメソッドを使用することを検討しています。誰かがそれの完全なハッシュを作成しているかどうか、および/または私がしようとしていることを明らかにすることができれば素晴らしいでしょう。することは可能です。

一連の部分ビューの検証を制御するために、一般的なアクションを使用しています。部分ビューごとに特定のアクションを実行しないようにしようとしています。

各部分ビューには、基本モデルから派生した一意のモデルがあります。

アクションでFormCollectionを使用して、送信されたフォーム要素とその値を取得しています。これには、ビューがリクエストを検証するために使用する必要があるモデルのタイプが含まれます。この例では、これがセキュリティに与える影響を無視してください。私はそれらを認識しており、これは内部的な唯一の概念実証です。

これが、コントローラーに渡されたmodelTypeに基づいてサブクラスを返すために使用しているコードです。

StateModelClassFactoryメソッドの戻り型は基本クラスであるため、実際にはサブクラスを返していますが、UpdateModelメソッドで使用されるモデルバインダーは、基本クラス内の値に対してのみバインドします。

この問題を解決する方法について何かアイデアはありますか?

アップデート:

カスタマーモデルバインダーを作成しました。

そして、新しいモデルバインダーを正しい基本クラスに割り当てて、内部で何が起こっているかを確認します。

モデルバインダーをデバッグしてbindingContextを調べると、Modelプロパティは正しいサブクラスを再プリセットしますが、ModelTypeプロパティは基本クラスのプロパティです。BindModelメソッド内でModelTypeを変更することを検討する必要がありますか?もしそうなら、これを行う方法についてのポインタは、ModelTypeのセッターが冗​​長になっているようです。また、サブクラスのSomeDatePropertyが実際にはPropertyMetadataプロパティにあることに気づきました。...私が望むように動作するのに非常に近いようです。

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

iphone - 私のサブクラスはメモリリークを引き起こしていますか?

UINavigationControllerとUITableviewをサブクラス化していますが、適切なメソッドとリリース呼び出しをすべて実装しましたが、何らかの理由でビューのメモリリークが発生しています。サブクラスの代わりにネイティブクラスを使用すると、リークすることなくすべてが正常に機能します。

編集:

これが私のスーパークラスヘッダーです:

スーパークラスの実装:

これが私のサブクラスヘッダーです:

およびサブクラスの実装:

サブクラスでメモリリークを引き起こしている可能性があるのは何ですか?私は何かが足りないのですか?(ここにはもっと関連性のあるコードがあります。)

0 投票する
5 に答える
4164 参照

c++ - C++ 用の行ベースのスレッドセーフな std::cerr

std::cerr行単位でスレッドセーフになるように独自のものを作成する最も簡単な方法は何ですか。

私はできればそれを行うためのコードを探しています。

私が必要とするのは、あるスレッドによって生成されたa line of output(で終了する)が、コンソールで実際に表示されたときに残るようにすることです (そして、他のスレッドの出力と混合されません)。std::endlas a line of output


解決策: cstdio よりもはるかに遅いstd::cerrです私は、コンストラクターがスレッドセーフなロックを取得し、デストラクターがそれを解放するクラスfprintf(stderr, "The message")内で使用することを好みます。CriticalSectionLocker

0 投票する
5 に答える
1569 参照

python - サブクラス化された文字列を所定の位置に変更します

次の文字列サブクラスがあります。

私はこれが次のように機能することを期待しています:

代わりに私はこれを取得します:

文字列を所定の位置に変更する方法はありますか? これは、可変文字列と不変文字列の違いに関係していると思います。サブクラス化は、文字列を可変オブジェクトとして扱う正しい方法のようです(少なくとも、Pythonのドキュメントによると)が、実装にいくつかの重要な部分が欠けていると思います。

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

clr - 誰かがCLR/DLRサブクラスのオーバーヘッドを説明できますか?

CLR準拠のコード(つまりC#)を使用して作成されたライブラリがあり、DLR(つまりIronPython)を使用してそれらのクラスの一部をサブクラス化した場合、これはCLRライブラリ(つまりキャストなど)の速度に影響しますか? CLR準拠のコードのみを使用してサブクラス化されましたか?

DLRが私のCLRライブラリに必要なコードをオーバーライドしない限り、答えが「いいえ」であることを願っています。私は経験的に答えをベンチマークするためにいくつかのコードを書くことができますが、誰かが知っているかどうか疑問に思いました。

明けましておめでとうございます!

ジョン

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

delphi - Delphi:サブクラスを逆の順序で削除する方法は?

Mike LischkeのTThemeServicesサブクラス。これにより、テーマが変更されたときにApplication.HandleWindows(つまり)からブロードキャスト通知を受信できるようWM_THEMECHANGEDになります。

Applicationオブジェクトのウィンドウをサブクラス化します。

次に、サブクラス化されたウィンドウプロシージャは、想定どおりにWM_DESTROYメッセージを送信し、そのサブクラスを削除してから、次のメッセージを渡しWM_DESTROYます。

TThemeServicesオブジェクトはシングルトンであり、ユニットのファイナライズ中に破棄されます。

そして、それはすべてうまく機能します-TThemeServicesがアプリケーションのハンドルをサブクラス化した唯一の人である限り。

Application.Handle私は同様のシングルトンライブラリを持っていますが、これもフックしてブロードキャストを受信できるようにしたいと考えています。

そして、ユニットがファイナライズすると、私のシングルトンも同様に削除されます。


今、私たちは問題に行き着きます。誰かがThemeServicesまたはにアクセスすることを選択する可能性のある順序を保証することはできませんDWM。それぞれがサブクラスを適用します。また、Delphiがユニットをファイナライズする順序もわかりません。

サブクラスが間違った順序で削除されており、アプリケーションを閉じるとクラッシュします。

直し方?私が終わった後に他の人が完了するまで、サブクラス化メソッドを十分長く保つにはどうすればよいですか?(結局、メモリをリークしたくない)

も参照してください


更新: Delphi7はを書き直すことでバグを解決しているようですTApplication。><

Grrrr

言い換えると、TApplicationをサブクラス化しようとするのはバグであり、BorlandはMikeのを採用したときに修正しましたTThemeManager

TApplicationこれは、サブクラスを逆の順序で削除する方法がないことを意味している可能性があります。誰かがそれを答えの形で入れて、私はそれを受け入れます。

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

python - Satchmo の Category モデルをサブクラス化すると、「'Manager' object has no attribute 'root_categories'」というエラーが発生する

現在構築中のウェブサイトの一部として Satchmo を使用しています。現時点では、Satchmo の Category クラスにさらに関数を追加しようとしていますが、Satchmo ファイルに変更を加える予定はありません。そこで、Category クラスをサブクラス化すると、Satchmo Category のすべてのプロパティとメソッドを含む新しいクラスが作成され、独自のクラスを追加できるようになると考えました。ただし、Python のサブクラス化がそのように機能しないか、間違っています。カテゴリをサブクラス化するために使用しているコードは次のとおりです。

Category クラスから通常使用できるメソッドの 1 つは次のとおりです。

ただし、アクセスしようとすると

次のエラーが表示されます。

これを解決するために誰かが私を正しい方向に向けることができますか?

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

android - Android で View サブクラスを適切に作成して使用するにはどうすればよいですか?

ここで見つかったソリューションの1つを実装しようとしています。

私の問題は、サブクラスを正しく実装して使用しているかどうかわからないことです。ここで WebView をサブクラス化しています。

非公開にする必要がありますが、今は忘れてください。ビュー階層に内部 webview を持つアクティビティの 1 つの内部にコードがあります。そのアクティビティの onCreate メソッドの外。

onCreate メソッド内には、次のものがあります。myWebView mapImage = (myWebView) findViewById(R.id.mapcroppic);

これにより、その呼び出しに対して ClassCastException が発生します。(xml レイアウト ファイルを使用する必要があります<myWebView>か?使用できますか?)これを正しい方法で使用するにはどうすればよいですか?