問題タブ [swift2.2]
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 - オプションのタイプは、swift 2.2 で正しく推測できません
問題:
Swift 2.2 を使用して Xcode 7.3 で次のコードを実行すると、コンパイラはオプションの型を正しく推測できません。
Xcode 7.3を使用している私の側では、これが印刷されますI am an Int?
ただし、変数を関数に渡す前に空の文字列で変数を初期化すると、スイッチはそれが String? であると推測します。
これはI am a String?
、以前の Xcode バージョンで出力されます。
同様の結果が得られていますか?
所見:
この関数シグネチャを使用すると、同じことが起こります。
- バグ -
この問題は、swift 2.2 の回帰です: https://bugs.swift.org/browse/SR-1024
swift - swift 2.2: 遅延プロパティの失敗可能な初期化子
まず、あなたの助けに感謝します。昨日、Swift 2.2 を含む Xcode をアップグレードしました。いくつかの問題に直面しましたが、Natashatherobot の「swift 2.2 の新機能」のトピックに従ってすぐに修正しました。しかし、修正できない問題が 1 つあります。これは、swift 2.2 で導入された UIFont の失敗可能な初期化子に関するものです。添付されているのは、swift 2.2 でエラーを報告する簡単なコードです。プロジェクトをクリーンアップするまで、すぐにエラーが報告されない場合があります。
エラーは次のとおりです: (name: String, size: CGFloat) -> UIFont' is not convertible to '(name: String, size: CGFloat) -> UIFont?'
次の 2 つの方法で修正できます。
方法 1: 次の行を入れない
let font = UIFont(name: "somefont", size: 10) ?? UIFont.systemFontOfSize(10)
でください: 「遅延インスタンス化」クロージャーに。(計算されたプロパティに入れてもエラーは報告されません)
方法 2: 以下を使用する代わりに:
代わりに以下を使用してください(ただし、初期化子をより「objc」スタイルにするため、これは正しいアプローチであるとは思いません):
しかし、怠惰なプロパティクロージャーでエラーが報告される理由はまだわかりません。誰かが私にいくつかの説明を与えることができれば、私は非常に感謝しています。
swift2 - iOS 9.2 と watchOS 2.1 で Swift 2.2 を使用しますか?
リリースされましたが、デバイスSwift 2.2 / iOS 9.3 / watchOS 2.2
を使用してアプリを更新しXcode 7.3
、引き続きiOS 9.2
デバイスで動作させることはできますか?
たとえば、#selector(someFunc)
の代わりに を使い始めた場合selector("someFunc")
、これはデバイスでクラッシュしiOS 9.2
ますか?
ios - #警告: C スタイルの for ステートメントは非推奨であり、Swift の将来のバージョンで削除される予定です
swift 2.2 で新しい Xcode (7.3) をダウンロードしました。
警告があります:
C スタイルの for ステートメントは推奨されておらず、Swift の将来のバージョンで削除される予定です。
この警告を修正するにはどうすればよいですか?