違いはありますか:
NSRange(location: 0, length: 5)
そして:
NSMakeRange(0, 5)
なぜなら、Swiftlint
は、NSMakeRange
を使用すると警告をスローしますが、理由はわかりません。
助けてくれてありがとう :-)
それらの間の唯一の違いは、
NSRange(location: 0, length: 5)
はNSRange
の初期化子ですが、
NSMakeRange(0, 5)
新しいNSRange
インスタンスを作成する関数で(内部で同じイニシャライザを使用する可能性が高い)、実際にはSwift
で冗長です。 Swift
は単にObjective-C
から継承しています。前者に固執する
主な違いは
NSRange(location: 0, length: 24)
Swiftの自動生成されたstruct initメソッドであり、
NSMakeRange(0, 24)
場所と長さを設定する定義済みのマクロです
NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
NSRange r;
r.location = loc;
r.length = len;
return r;
}
一般的に、結果は同じですが、Swiftを最初に使用し、ObjCコードを作成している場合は2番目を使用します;)