問題タブ [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.
objective-c - 内容のないクラス拡張の目的は何ですか?
開発者のドキュメントによると、クラス拡張は@interface
実装ファイルで an を宣言することによって実装され、インスタンス変数をプライベートに再宣言するためにも使用できます。ただし、新しいメソッドやインスタンス変数を宣言していない以下のコードをよく見かけます。その目的は何ですか?
swift - プロパティ/メソッドを定義せずに、プロトコルで型変換を強制できますか?
asStringを定義する必要はありません。
class - Swift とクラス拡張の使用
extension
プログラマーがクラスの実装でキーワードを使用する理由がわかりません。他のトピックでは、コードがより意味的に分離されていることなどを読むことができます。しかし、自分のコードで作業するときは、// MARK - Something
. 次に、Xcode でメソッド リスト (ctrl+6) を使用すると、すべてが一目でわかります。
Apple のドキュメントでは、以下を読むことができます。
「拡張機能は、既存のクラス、構造、または列挙型に新しい機能を追加します。」</p>
では、自分のコードを自分のクラス内に直接記述してみませんか? NSURLSession
やなどの外部クラスの機能を拡張したい場合とは異なり、拡張機能を使用する必要がDictionary
あります。
Mattt Thompson は彼の Alamofire ライブラリで拡張機能を使用しています。
objective-c - Objective-C クラス拡張メソッドの前方宣言
次のコードはエラーNo visible @interface for 'Bar' declare the selector 'barMethod' on the second line of implementation を生成し-[Foo fooMethod]
ます:
クラス拡張を実装の上-[Bar barMethod]
に移動する以外に、FooBar.m 内で宣言を転送する方法はありますか(これはあまり便利ではありません)。Bar
Foo
objective-c - Swift で Objective C クラスの拡張プロパティを公開する
Objective C 実装ファイル ( MyVC.m
)に次のものがあるとします。
このプライベート プロパティを Swift (テスト) コードに公開するにはどうすればよいですか? 次の場合、コンパイラ エラーが発生します。
php - PHP でクラス レスポンスを拡張する
私は mySQL と SQLite DB を使用するプロジェクトに取り組んでいます。私の目標は、コードが両方のデータベース タイプで動作できるようにすることです。クラスを使用して mySQL のコードを開発しましたが、オブジェクトmysqli
でも動作するように変更したいと考えていSQLite3
ます。
SQLite3
mysqli
クラスは(少なくとも私が使用するものとは)同じメソッドを実装しますが、異なる名前を使用することもあります。たとえば、 にmysqli::fetch_array()
なりSQLite3::fechArray()
ます。そこで、必要なメソッドを実装するために SQLite3 とSQLite3Result
クラスを拡張しています。例えば:
SQLite3
問題は、クラスの応答を拡張して独自のSQLite3Response
拡張クラスを取得する方法がわからないことです。つまり:
今$res
はオブジェクトですが、オブジェクト(自分の拡張クラス)SQLite3Result
になる必要があります。SQLite3ResultEx
swift - Swift で最終クラスを拡張できますか?
Swift を使用して作成している新しいアプリにサードパーティのライブラリを使用しています。final
クラス/ライブラリの作成者は、おそらくそのプロパティとメソッドを最適化し、オーバーライドするのを防ぐために、キーワードを使用して最終的なものにしました。
例:
クラスを拡張し、デフォルトをオーバーライドせずにいくつかの新しいプロパティとメソッドを追加することは可能ですか?
そのようです:
swift - NSDate で _Incrementable に準拠を追加する方法
ForwardIndexType
inに適合性を追加してNSDate
を作成できるようにしようとしています。そのためにはfromRange<NSDate>
を実装する必要があります。public func successor() -> Self
_Incrementable
私の実装は非常に単純で、別の日付に続く日付がちょうど 1 秒後の日付であることを示すことを目的としていますが、それはここで求められていることではありません。
私が得ているエラーは
NSDate
タイプ ' ' の戻り式を戻りタイプ ' ' にSelf
変換できません
as Self
orを追加しようとしましたが、その場合 からへの変換は常に成功するas! Self
ため、コンパイラは許可しません。で置き換えてもうまくいきません。NSDate
Self
Self
NSDate
どうすれば正しい方法で行うことができますか?