問題タブ [swift-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 投票する
1 に答える
94 参照

ios - 他のプロトコルによって制限されているジェネリック型でプロトコル メソッドを呼び出すことはできません

私は次のものを持っています:

Guard異なるクラス タイプの任意の数のオブジェクト、および他のオブジェクトにプロトコルを割り当てたいと考えていPrisonerます。ガードとして機能するオブジェクトは、クラス タイプに応じて、独自のスマック実装を持ちます。smackAllしかし、継承する可能性のある各クラスを書き直す理由はありませんGuard。だから私はこのようにしようとしていますが、コンパイラは私を許しません。私は何が欠けていますか?

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

swift - Swift でインスタンス タイプを返す

私はこの拡張機能を作ろうとしています:

しかし、コンパイルエラーが発生します:

エラー: タイプ 'UIViewController' の戻り式を戻りタイプ 'Self' に変換できません

出来ますか?また、私はそれをinit(storyboardName: String, storyboardId: String)

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

objective-c - Swift 拡張ファイルの Obj-C プロパティへのアクセス

ビュー コントローラーで Swift 拡張機能を書き始めました。したがって、現在3つのファイルがあります。

私のヘッダーファイルViewController.h

私の Obj-C 実装ファイルViewController.m:

そして最後に、ViewController.swift:

私の質問は、Swift 実装ファイルから Obj-C プロパティにアクセスすることは可能ですか? それを参照するたびに、エラーが発生しました:

ボーナス 1: Swift コンポーネントが .m のデリゲートも認識できるかどうかを誰かが明確にすることもできます。(明確にするscrollView.delegate = selfために、Swift ファイルは .m ファイルが UIScrollViewDelegate であることを認識しないため、Swift で実行するとコンパイル エラーになります)。

ボーナス 2: Swift 拡張ファイルは、対応する .m から宣言された Obj-C メソッドを呼び出すことができますか?

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

arrays - Swift 辞書拡張機能の配列 sortInPlace

Swift 2.1 を使用して、辞書の配列をキー dateKey の日付値でソートする関数を作成しようとしています。

これを Array 型の拡張として追加したいので、次を使用して呼び出すことができますsomeArray.sortDictionariesByDate(dateKey: String, dateFormatter: NSDateFormatter)

これは、辞書の型が である限り問題なく動作しますが[String: AnyObject]、型の辞書で使用すると、にキャストできないため機能し[String: String]ません。これは がではないためだと思います。代わりに要素を型キャストしようとしましたが、型または型の辞書を使用しても機能しません。StringAnyObjectStringStructClass[String: Any][String: AnyObject][String: String]

キーの型Stringと任意の値の型 (など) を持つ辞書をサポートするために使用できるキャストStringAnyObjectまたは完全にキャストを回避するために拡張機能に追加できる where 句またはプロトコルの適合性はありますか?

編集:リクエストごとに2つの例の配列を次に示します

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

swift - 適合型のプロトコル拡張の実装に失敗しました

(必要に応じて質問のタイトルを自由に変更してください)

私は多くの BLE データを扱っており、デバッグの目的でUInt8HEX計算された変数で簡単に拡張できることがわかりました。

小文字のバリアントが必要であることに気付きました。そして、私はそれが欲しかったのUInt32ですUInt16。変更されるのは印刷する桁数だけなので、ある種のプロトコルでこれを行うことができると思いました (少なくとも教育目的では)。

HEX次に、これを利用してandhexメソッドのデフォルトの実装を提供したい部分です。

コンパイラ エラーが発生しますArgument type 'Self' does not conform to expected type 'CVarArgType'

私はこれを理解していると思います。CVarArgTypeプロトコルとして、そのような文字列初期化子で使用できる型 ( ) を採用する型になることを保証できないと言っています。whereそれで初めて節を使えると思った。プロトコル拡張を次のように変更しました。

これはにつながりSame-type requirement makes generic parameter 'Self' non-genericます。その時点で私のアマチュアタイプの理論家の理解があふれました。異なる UInt サイズで 2 つの拡張メソッドを機能させる魔法は何ですか?

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

swift - キーボード拡張機能の UICollectionview

私は迅速に作成したキーボード拡張機能に UICollectionview を取得しようとしました。しかし、私はそれを機能させることができません。キーボードは起動時にクラッシュするだけです。誰でもこれを修正する方法を知っていますか? または、キーボード拡張機能で UICollectionview を使用することさえ可能ですか。

class KeyboardViewController: UIInputViewController、UICollectionViewDelegateFlowLayout、UICollectionViewDataSource{

}