Y a-t-il une différence entre:
NSRange(location: 0, length: 5)
et:
NSMakeRange(0, 5)
Parce que Swiftlint
jette un avertissement lorsque j'utilise NSMakeRange
, mais je ne sais pas pourquoi.
Merci pour l'aide :-)
La seule différence entre eux est que
NSRange(location: 0, length: 5)
est un constructeur pour NSRange
tant que
NSMakeRange(0, 5)
est une fonction qui crée une nouvelle instance NSRange
(en utilisant très probablement le même constructeur) et qui est en fait redondante dans Swift
je pense. Swift
l'a simplement hérité de Objective-C
. Je m'en tiendrais à l'ancien
La principale différence est que
NSRange(location: 0, length: 24)
est une méthode struct init auto-générée dans Swift et
NSMakeRange(0, 24)
est juste une macro prédéfinie qui définit l'emplacement et la longueur
NS_INLINE NSRange NSMakeRange(NSUInteger loc, NSUInteger len) {
NSRange r;
r.location = loc;
r.length = len;
return r;
}
En général, le résultat est le même, mais si vous êtes Swift, utilisez le premier et si vous écrivez du code ObjC, utilisez le second;)