2016-09-23 7 views
3

私はこの行のSwiftLint警告取得しています:レガシーコンストラクター違反:レガシーコンビネーション関数よりもスウィートコンストラクターが優先されます。 (legacy_constructor)

return UIEdgeInsetsMake(topInset, leftInset, bottomInset, rightInset) 

これは警告です:

レガシーコンストラクタ違反:スウィフトコンストラクタは レガシー便利な機能よりも優先されます。 (legacy_constructor)

私もこのライン上の警告取得しています:

return CGRectInset(bounds, insetX, insetY) 

レガシーCGGeometryが違反機能:構造体の拡張プロパティと 方法は、従来の機能よりも好ましい (legacy_cggeometry_functions)

UIEdgeInsetsMakeとのスウィフトバージョンとは10?

+0

参考文献https://developer.apple.com/reference/uikit/uiedgeinsetsをご覧ください。または、自動補完を試してください: '返すUIEdgeInsets(' –

+0

私はしましたが、Swiftバージョンは同じ名前を持ちますので、この警告を解決する方法や、別の方法があるかどうかはわかりません – etayluz

+2

タイプはUIEdgeInsets'で始まるので、 'UIEdgeInsets'で始まります。(UIEdgeInsetsMake' ... –

答えて

4

Swiftは、古いCコンストラクタの代わりに、これらの型の新しい構造体初期化子に更新したいと考えています。だからあなたのはめ込み初期化子はこれに変更されます:

return UIEdgeInsets(top: topInset, left: leftInset, bottom: bottomInset, right: rightInset) 

CGRectInset CメソッドはCGRect構造体上の方法であることに変更されました。

return bounds.insetBy(dx: insetX, dy: insetY) 
+0

@Martin Rのように、UIEdgeInsetsMakeの代わりにUIEdgeInsetsを使用しました。 – etayluz

+1

私は何を書こうとしていたのですか?「UIEdgeInsetsMake」は私の一部のタイプでした。 – keithbhunter

関連する問題