問題タブ [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.
swift - 迅速で明示的な例での便利なinitとinitの違いは何ですか?
両方の違い、または の目的を理解するのに苦労していconvenience init
ます。
ios - UNNotificationCategory サブクラスの初期化の問題
UNNotificationCategory
カテゴリ識別子としてハードコードされた文字列の代わりに列挙型を使用したいので、(UserNotifications)をサブクラス化します。UNNotificationCategory
定義内に便利な init が 1 つあります。
サブクラスのイニシャライザを記述できません。スーパークラスの便利なinitを呼び出したいので、サブクラス内でイニシャライザを指定できないことを理解しています。しかし、私の便利な初期化もコンパイラエラーをスローしています。
コードは次のとおりです。
これによりエラーが発生します:初期化子から戻る前にすべてのパスで self.init が呼び出されていません
これは、このクラスがObjective-Cで実装されており、便利な初期化子から指定された初期化子を呼び出していない可能性があるためだと思います(Objective-Cクラスは便利な初期化子から指定された初期化子を呼び出す必要がないため)。
UNNotificationCategory
しかし、初期化子を書きたい場合、サブクラス化できないということですか?
swift - Swift 3: Foundation の「Timer」を拡張する便利なイニシャライザがハングする
便利な初期化子を追加して、Swift 3 でFoundation のTimer
クラスを拡張しようとしています。しかし、Foundation 提供のイニシャライザへの呼び出しは返されません。
この問題は、Playground として実行できる次の簡単なデモで説明されています。
コンソール出力:
さらに勉強するには、
• 同様の拡張コードを作成URLProtocol
しました (インスタンス初期化子を持つ唯一の他の Foundation クラスの 1 つ)。結果:問題ありません。
• 考えられる原因として Objective-C のものを排除するために、ラップされたイニシャライザをinit(timeInterval:repeats:block:)
メソッドに変更し、Swift クロージャを提供しました。結果: 同じ問題。
swift - 呼び出しの余分な引数、便利な初期化子
ここで何が間違っていますか?すべて問題ないようです。関数のシグネチャは正しいです。parent
が余分な引数になる理由はわかりません。
編集: スクリーンショットから実際のコードに切り替えました。