問題タブ [convenience-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.

0 投票する
10 に答える
68767 参照

swift - 迅速で明示的な例での便利なinitとinitの違いは何ですか?

両方の違い、または の目的を理解するのに苦労していconvenience initます。

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

ios - UNNotificationCategory サブクラスの初期化の問題

UNNotificationCategoryカテゴリ識別子としてハードコードされた文字列の代わりに列挙型を使用したいので、(UserNotifications)をサブクラス化します。UNNotificationCategory定義内に便利な init が 1 つあります。

サブクラスのイニシャライザを記述できません。スーパークラスの便利なinitを呼び出したいので、サブクラス内でイニシャライザを指定できないことを理解しています。しかし、私の便利な初期化もコンパイラエラーをスローしています。

コードは次のとおりです。

これによりエラーが発生します:初期化子から戻る前にすべてのパスで self.init が呼び出されていません

これは、このクラスがObjective-Cで実装されており、便利な初期化子から指定された初期化子を呼び出していない可能性があるためだと思います(Objective-Cクラスは便利な初期化子から指定された初期化子を呼び出す必要がないため)。

UNNotificationCategoryしかし、初期化子を書きたい場合、サブクラス化できないということですか?

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

swift - Swift 3: Foundation の「Timer」を拡張する便利なイニシャライザがハングする

便利な初期化子を追加して、Swift 3 でFoundation のTimerクラスを拡張しようとしています。しかし、Foundation 提供のイニシャライザへの呼び出しは返されません。

この問題は、Playground として実行できる次の簡単なデモで説明されています。

コンソール出力:

さらに勉強するには、

• 同様の拡張コードを作成URLProtocolしました (インスタンス初期化子を持つ唯一の他の Foundation クラスの 1 つ)。結果:問題ありません。

• 考えられる原因として Objective-C のものを排除するために、ラップされたイニシャライザをinit(timeInterval:repeats:block:)メソッドに変更し、Swift クロージャを提供しました。結果: 同じ問題。

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

swift - 呼び出しの余分な引数、便利な初期化子

ここで何が間違っていますか?すべて問題ないようです。関数のシグネチャは正しいです。parentが余分な引数になる理由はわかりません。


編集: スクリーンショットから実際のコードに切り替えました。