コンパイラの警告なしスウィフトにフロートするのObjective-CからNSDecimalNumberをキャストすることができます。は、どのように私は<strong>スウィフト3</strong>でこの機能を持っている
私はすべてをSwiftに変換中です。
私が呼ぶたびにitemRating.update(rating)
それは悪名高い与える:常に警告を与える
if let rating = product.rating as Decimal?, let floatRating = rating as? Float {
itemRating.update(floatRating) //sets item rating. Number of stars
}
::私は仕事にそれを得た
fatal error: unexpectedly found nil while unwrapping an Optional value
唯一の方法は、この醜い実装によってだった
Cast from 'Decimal' to unrelated type 'Float' always fails.
上記のエラーで私が試したすべての他の方法で失敗します。ここで
はupdate()
の定義です:
- (void)updateRating:(float)inRating;
これで何が起こっていますか?
itemRatingはどのように宣言されていますか? –
'UIImageView'を継承するカスタムタイプです – theblindprophet
' itemRating.update(rating) 'でクラッシュした場合、Floatへの変換は問題になりません!おそらく 'itemRating'は' nil'ですか? –