[解決済み] 既存のオブジェクトに拡張機能を追加するSwiftファイルの命名のベストプラクティスは何ですか?
2022-04-14 13:52:08
質問
で説明されているように、拡張機能を使用して、既存のSwiftオブジェクトタイプに拡張機能を追加することは可能です。 言語仕様 .
その結果、次のような拡張機能を作ることができるようになりました。
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
しかし、そのような拡張子を含むSwiftのソースファイルの最適な命名方法は何でしょうか?
従来は
extendedtype+categoryname.m
は、Objective-Cの
で説明したように
Objective-Cガイド
. しかし、Swiftの例ではカテゴリ名を持っておらず、それを呼び出すことで
String.swift
は適切ではないようです。
そこで質問ですが、上記の
String
の拡張子は、Swift のソースファイルの名前をどうすればいいのでしょうか?
解決方法は?
私が見たほとんどの例は、Objective-Cのアプローチを真似ています。上記の拡張例はそうでしょう。
String+UTF8Data.swift
この命名規則により、拡張であること、どのClassを拡張しているかがわかりやすいという利点があります。
を使用した場合の問題点は
Extensions.swift
あるいは
StringExtensions.swift
というのは、中身を見ずにファイル名で目的を推し量ることはできないからです。
使用方法
xxxable.swift
のようなアプローチは、メソッドのみを定義するプロトコルや拡張機能では問題なく機能します。しかし、繰り返しになりますが、上記の例では、属性を定義しているため
UTF8Dataable.swift
は、文法的にあまり意味をなさない。
関連
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] UIViewに角丸をつける
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] iOSで現在のデバイスの言語を取得するには?
-
[解決済み】Swiftで型付き配列を拡張するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Xcode 12、iOS Simulator用にビルドしても、iOS用にビルドされたオブジェクトファイルでは、アーキテクチャ「arm64」用にリンクされます。
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] UITextFieldの最大文字数を設定します。
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] Swift で HTTP リクエストを行うにはどうしたらいいですか?
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?