なぜか内部で生きてるFloat変数
指南本によると、swiftのデフォルト小数点精度はDoubleである、とあります。
それを信じて、UISlider(スライダー)を配置し、その数値を音声合成の"utterance.voice"や"utterance.rate"の純正オプションに代入しようとすると、「Cannot assign a value of type'Float' to a value of 'Double'"とXcodeに叱られました。
え?と訝しがりつつ、DoubleをFloat精度に落とす方法を探してみたら、「var 変数名:Float = n」と最初に初期値とともに宣言しておけば、スライダーからの数値もFloat精度で代入されて問題解決。
とりあえずこれで問題解決したんですが、なんかswiftの設定がザルな印象。
このスライダーの値の取り扱い、ネットにはOutletとして接続し、String扱いの文字列として引き継ぐ例文がよくあります。 私はそのまま数字で渡せばいいやん、と生意気にもActionとしたので、この小数点精度の問題に面したのかもしれません。
| 固定リンク
「iOS と Xcode」カテゴリの記事
- HyperTalk的Swiftの解釈(2019.07.28)
- Xcode、シミュレーター、実機、メモリリーク(2019.07.25)
- 盆灯篭アプリ公開(2019.07.21)
- 日本のSceneKitの原点(2019.07.14)
- AppStoreで異なるバージョンのアプリを共存させる(2019.05.08)
コメント