1. ホーム
  2. ios

[解決済み] 既存のオブジェクトに拡張機能を追加する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 は、文法的にあまり意味をなさない。