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

ios - Xcode 9 & Swift 4 - View Controller を提示すると予期しないクラッシュが発生する

Xcode 9 Beta 1 および Swift 4 を使用している場合にのみクラッシュが発生します。View Controller を表示しようとしていますが、すべての例外をキャッチするためのブレークポイントがいくつかあるにもかかわらず、例外がスローされます。Xcode はどこにも停止しません。

Xcodeがそれをしなかったので、lldbを使用して例外を出力することができました。これが私が得たものです:

スタック トレースは次のとおりです。

ここに画像の説明を入力

そしてバックトレース:

UIDeviceRGBColor認識されないセレクターと関係があることは理解していますが、 orでは何もしていませんPointSize

何が起こっているのかよくわかりませんが、Xcode 8 に切り替えると、これはすべて正常に機能します。

再現したい場合は、ここfeatures/ios11でプロジェクトを複製して、ブランチに切り替えてください。イントロ画面を終了し、+ボタンをクリックするだけです。クラッシュはその後すぐに発生します。Xcode 9 Beta 1を使用して実行する

これはベータ版のバグである可能性があることは理解していますが、これについてより多くの経験がある場合は、少なくとも Xcode のバグレポートを提出する方法について助けていただければ幸いです。

ありがとう!

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

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

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

ios - タイプ '(_) -> ()' の値をタイプ '((String, String, String, Int) -> ())' に代入できませんか?

私はこのように定義されたクロージャーを持っています、

このように更新されるものは、

そして、このように使用すると、

エラー:

タイプ '(_) -> ()' の値をタイプ '((String, String, String, Int) -> ())' に代入できませんか?

しかし、これにより上記のエラーが発生し、どうすればよいかわかりませんか?

同じことがSwift 3.xでも問題なく機能しています。

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

barcode - iOS 11 向け Vision Framework バーコード検出

Apple が WWDC2017 で導入した新しい Vision フレームワークのテストを実装しています。私は特にバーコード検出を検討しています-カメラ/ギャラリーから画像をスキャンした後、それがバーコード画像であるかどうかを取得できました。しかし、barcodeDescriptor を見ると、実際のバーコード値やペイロード データがわかりません。https://developer.apple.com/documentation/coreimage/cibarcodedescriptorページには、プロパティを特定するための情報は何も公開されていないようです。

次のエラーが表示されます。

  • リモート サービスに接続できません: エラー Domain=NSCocoaErrorDomain Code=4097 "
    com.apple.BarcodeSupport.BarcodeNotificationService という名前のサービスへの接続"
  • libMobileGestalt MobileGestalt.c:555: InverseDeviceID にアクセスできません (problem/11744455 を参照>)
  • com.apple.BarcodeSupport.BarcodeNotificationService という名前のサービスへの接続 エラー
    Domain=NSCocoaErrorDomain Code=4097

VNBarcodeObservation からバーコード値にアクセスする方法はありますか? どんな助けでも大歓迎です。ありがとうございました!私が使用しているコードは次のとおりです。

0 投票する
0 に答える
113 参照

swift - 制約付きプロトコルから継承する汎用プロトコルの制約

私はそのようなジェネリックを利用しようとしています。

の定義でエラーが発生していますB:

同型制約タイプ 'X' は、必要なプロトコル 'Y' に準拠していません

しかし、X準拠していYます...

DataPoint私はそのような仲介関連型を使用してみました

しかし、同じエラーが発生します。Swift 4 でこの種のことを達成することは可能ですか、それとも 2 つの完全に別個のプロトコルを作成する必要がありますか?

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

ios - ネストされたものが配列でない限り、Swift `Decodable` はネストされた JSON オブジェクトに対して機能しません

私はいくつかの JSON 解析コードを新しい AppleDecodableプロトコルを使用するように変換し始めており、Apple のテスト中に見逃すにはあまりにも基本的なブロッカーにぶつかったので、何かばかげたことをしているのではないかと思っています。要するに、私はこのような JSON グラフを解析しようとしています。私はデコードしているだけなので、Decodable に準拠するだけで十分だと思いましたが、エラーから、希望するものを取得するには Codable (Decodable & Encodable) に準拠する必要があるようです。デコード効果:

このケースで動作します:

ネストされたオブジェクトの配列ですが、単一のオブジェクトではありません。

これは Swift のバグですか、それとも何か問題がありますか?

問題を証明できるサンプルのプレイグラウンドを次に示します。Animal クラスが準拠してDecodableいる場合、配列のケースは解析されませんが、Animal を準拠するように設定するCodableと機能します。ここでは JSON をデコードしているだけなので、これが当てはまるとは思いません。