問題タブ [swift4]
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.
json - Swift 4 の JSONDecoder を使用すると、欠落しているキーがオプションのプロパティである代わりにデフォルト値を使用できますか?
Swift 4 では、新しいCodable
プロトコルが追加されました。私が使用JSONDecoder
すると、クラスのオプションではないすべてのプロパティがCodable
JSON にキーを持つ必要があるように見えます。そうしないと、エラーがスローされます。
クラスのすべてのプロパティをオプションにすることは、本当に必要なのはjsonの値またはデフォルト値を使用することであるため、不必要な面倒のように思えます。(プロパティをnilにしたくありません。)
これを行う方法はありますか?
swift - Swift 4 でのジェネリック型の拡張
2 つのプロトコルと一般的な構造体があります。
DataSet
の場合にのみ適用されるメソッドが多数ありElement
ますTwoDimensionalDataPoint
。そこで、次のような拡張機能を作成しました。
コンパイラはこれを好まず、次のように言います。
タイプ 'DataSet.Element' (別名 'OneDimensionalDataPoint') の値にメンバー 'x' がありません
TwoDimensionalDataPoint
拡張機能でElement を制約したので、これでいいのではないでしょうか?
ios - IOS: セグメント切り替え時の「スレッド 1: Signal SIGABRT」
私は、ビッグ ナード ブランチの「iOS プログラミング 第 5 版」という本を読んでいます。
このコードは、マップ ビューでセグメント化されたビューを作成し、実行時にセグメントを変更するたびに、次のようにクラッシュします。
スレッド 1: シグナル SIGABRT
最新バージョンを使用している間に、本の古いバージョンのSwiftに関係している可能性があります。
これが私のコードです:
これを修正するにはどうすればよいですか?
ios - 拡張機能の宣言は Swift 4 でまだエラーをオーバーライドできません
私は拡張機能を持っています:
しかし、私topMostController
の場合、次のエラーが発生します:
Swift 3.1 では問題なく動作しますが、Swift 4 ではこのエラーが発生します。どうすれば修正できますか?Swift 4 で何が変更されましたか?
ios - NavigationBar setTitleVerticalPositionAdjustment(_:for:) メソッドが iOS 11 ベータ版のタイトル画像で機能しない
iOS10 (Swift 3) で正常に動作するコードが iOS11 Beta (Swift 4 / XCode 9.0 beta) では動作しない
画像をナビゲーション バーのタイトルとして設定し、垂直位置を調整します。
self.navigationItem.titleView = UIImageView(image: UIImage(named: "some_image"))
self.navigationController?.navigationBar.setTitleVerticalPositionAdjustment(-4.0, for: .default)
画像は iOS 11 ベータ版では垂直方向に調整されませんが、iOS 10 では問題なく動作します。
self.title = "Some title"
ナビゲーションバーのタイトルがテキスト ( ) として設定されている場合、メソッドは正常に機能することに注意してくださいsetTitleVerticalPositionAdjustment(_:for:)
。この問題は、UIImageView をナビゲーションバーのタイトルとして使用しようとした場合にのみ明らかになります。
最近、似たようなことを経験した人はいますか?