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

0 投票する
7 に答える
61073 参照

json - Swift 4 の JSONDecoder を使用すると、欠落しているキーがオプションのプロパティである代わりにデフォルト値を使用できますか?

Swift 4 では、新しいCodableプロトコルが追加されました。私が使用JSONDecoderすると、クラスのオプションではないすべてのプロパティがCodableJSON にキーを持つ必要があるように見えます。そうしないと、エラーがスローされます。

クラスのすべてのプロパティをオプションにすることは、本当に必要なのはjsonの値またはデフォルト値を使用することであるため、不必要な面倒のように思えます。(プロパティをnilにしたくありません。)

これを行う方法はありますか?

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

swift - Swift 4 でのジェネリック型の拡張

2 つのプロトコルと一般的な構造体があります。

DataSetの場合にのみ適用されるメソッドが多数ありElementますTwoDimensionalDataPoint。そこで、次のような拡張機能を作成しました。

コンパイラはこれを好まず、次のように言います。

タイプ 'DataSet.Element' (別名 'OneDimensionalDataPoint') の値にメンバー 'x' がありません

TwoDimensionalDataPoint拡張機能でElement を制約したので、これでいいのではないでしょうか?

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

ios - IOS: セグメント切り替え時の「スレッド 1: Signal SIGABRT」

私は、ビッグ ナード ブランチの「iOS プログラミング 第 5 版」という本を読んでいます。

このコードは、マップ ビューでセグメント化されたビューを作成し、実行時にセグメントを変更するたびに、次のようにクラッシュします。

スレッド 1: シグナル SIGABRT

最新バージョンを使用している間に、本の古いバージョンのSwiftに関係している可能性があります。

これが私のコードです:

これを修正するにはどうすればよいですか?

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

ios - 拡張機能の宣言は Swift 4 でまだエラーをオーバーライドできません

私は拡張機能を持っています:

しかし、私topMostControllerの場合、次のエラーが発生します:

Swift 3.1 では問題なく動作しますが、Swift 4 ではこのエラーが発生します。どうすれば修正できますか?Swift 4 で何が変更されましたか?

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

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 をナビゲーションバーのタイトルとして使用しようとした場合にのみ明らかになります。

最近、似たようなことを経験した人はいますか?