問題タブ [class-extensions]

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

ios - Swift には Array の拡張機能が含まれています

次のように Array に拡張メソッドを追加しようとしています。

しかし、self.filter {$0 == obj}働かないでください。コンパイラ エラー:

指定された引数を受け入れる「==」のオーバーロードが見つかりませんでした

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

c++ - C++ コードと Objective-C コードを混在させるのに助けが必要です

XCode で Blackmagic Design AV デバイス用のデバイス ドライバーを作成していますが、BMD の SyncController クラスを簡略化されたサンプル コード (以下) から純粋な Objective-C プロジェクトに含めるのに問題があります。

彼らの DecklinkAPI.h ファイルには C++ コードが豊富に含まれているため、このヘッダー ファイルをそのまま Objective-C クラスにインクルードしようとすると、コンパイラは API インクルードの奥深くでチョークを実行します。「クラス」のことですか?

hereに記載されているように、C++ ビットを Obj-C クラス拡張にバンドルしようとしましたが、あまり成功しませんでした。私は C++ プログラミングをしたことがない (そして Obj-C クラス拡張機能を使用したことがない) ので、これは私にとって新しい領域です。

SyncController オブジェクト用に追加のラッパー クラスを作成する必要があるかどうか、またはこのオブジェクトでクラス拡張を行って C++ ビットを .mm ファイルにシャッフルできるかどうかはわかりません。

#include "SyncController.h"コンパイラがチョークすることなく、Objective-C クラスでa (またはそのラッパー) を実行できるようにしたいと考えています。

そのための支援をいただければ幸いです。

まず、現在の SyncController.h ファイルは次のとおりです。

次に、これが私の (単純化された) SyncController.mm ファイルです。

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

objective-c - 拡張インターフェイスでのメンバーの宣言と実装でのメンバーの宣言の違いは何ですか?

まったく同じだと思っていたものに対して、2 つの非常に異なる動作が見られます。

次のように、クラス拡張でプライベート メンバーを定義します。

または、クラス実装でプライベート メンバーを次のように定義します。

私がこのコードを使用している方法は、ClassB オブジェクトを作成し、その ClassB オブジェクトで ClassA オブジェクトを初期化し、次に ClassA オブジェクトを可変配列に追加することです。

最初のアプローチを使用して、インターフェイス拡張でメンバーを定義すると、可変配列の各要素が実際に期待どおりであることがわかります。

ただし、2 番目の方法を使用するClassB* bと、オブジェクト内のポインターがClassA常に最後に作成されたオブジェクトを指していることがわかりClassBます。つまり、-(void)initメソッドが終了すると、ClassB各オブジェクトのポインターは、作成しClassAたオブジェクトを指します。ClassBcreateClassB3

ここで何が起きてるの?

また、ClassB オブジェクトは C++ オブジェクトであり、これは目的の C++ クラスであることにも言及する必要があります。

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

objective-c - 単純なクラス拡張/継承の明確化

私はここ数年、Objective-C を書いていますが、より良いコードを書くのに役立つように、戻って基本を学ぶことにしました。インスタンス変数、継承、クラス拡張についてすべて学ぼうとしています。私は3つすべてを読んでいますが、1つ頭がおかしくなることがあります。Person、Male (Person から継承)、そしてもちろん Main (Male クラスをインポートするため、Person と Male の両方にあるインスタンス変数にアクセスできる) の 2 つのクラスを含む単純なアプリがあります。

コードは単純です。スペースの都合上、すべてを掲載することはしません。基本的に Main はこれらの変数を取り、それらをいじります。これは私の頭を悩ませている部分です:

ブラケットと変数宣言を削除すると、次のようになります。

コードは引き続き継承され、問題なく実行されます。

1. 2 つのプロパティを作成できる場合、最初にそれらを宣言する意味はありますか?

2.それらに対応する 2 つのインスタンス変数とプロパティを作成するのはなぜですか?

3.代わりに、.m で変数を宣言して、クラスとそれをサブクラス化するすべてのものに対してプライベートに保つことができることを知っています。このような:

ここでの違いは何ですか?基本的なことがたくさん抜けているように感じます。これをすべて視野に入れる単純な方法はありますか?

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

c# - Identity 2.0: カスタム ClaimsIdentity の作成例: User.Identity.GetUserById(int id) リクエストごとの検証用

この同様の質問を参照してください: User.Identity でより多くのユーザー プロパティにアクセスする必要があります

User.Identity オブジェクトに関連するプロパティに簡単にアクセスできるようにする Razor ビューで使用するカスタム認証方法を作成したいと考えていますIdentityUserが、その方法がわかりません。このViewContextExtensionメソッドを使用する代わりにUser.Identity.GetUserName()、 、 などに似たカスタム拡張機能をいくつか作成したいと考えています。私の認証タイプは現在、VS2013 MVC5 テンプレートのデフォルト タイプです。Shoe が述べたように、ユーザーがサインインした後にこのクレームを挿入する必要があります。User.Identity.GetUserById()DefaultAuthenticationTypes.ApplicationCookie

私の質問は次のとおりです。

this IIdentityIPrincipalの下に out パラメーターを持つカスタム クレームを作成する方法と場所を教えてください。

これにより、Identity 2.0 を使用して単一のアプリに複数の DbContext がある DDD 設定のエンティティのビューで CookieAuthentication を介してユーザー プロパティにアクセスできます。最終的には WebAPI を使用しますが、今のところはできるだけシンプルに保ちたいと考えています。この SO Q&Aを見つけましたが、チケットを使用した Web フォームを対象としています。チケットとトークンの違いもわかりませんか?

ViewContextこれは、ベース コントローラーから使用する現在のアプローチです。

意見:

BaseController.cs

Extensions.cs

私が探しているのは、どこでどのように?

意見:

解決

私は単純にExtension.csファイルを編集し、_LoginPartial.cshtml に使用される Base コントローラーの継承を使用して、ViewContextExtensionクラスを編集しました。