NSURL, URL et NSData, les Données
Je suis nouveau sur Swift. Je tirais une image à partir d'Internet lorsque je suis tombé sur NSURL
et URL
et NSData
et Data
. Je suis vraiment confus. Lesquels dois-je utiliser? J'ai utilisé le code suivant, mais j'ai dû convertir les types comme indiqué ci-dessous. Quelle est la bonne façon de le faire et quelle est la différence entre NSURL
et URL
et NSData
et Data
? Quelqu'un s'il vous plaît aider.
if let theProfileImageUrl = tweet.user.profileImageURL{
if let imageData = NSData(contentsOf: theProfileImageUrl as URL){
profileImageView.image = UIImage(data: imageData as Data)
}
}
OriginalL'auteur Nikhil Sridhar | 2016-11-25
Vous devez vous connecter pour publier un commentaire.
De nombreux noms de classe a chuté de la
NS
préfixe avec la version de Swift 3. Ils doivent être utilisés uniquement avec code Objective-C. Si vous écrivez Swift 3 de code que vous devez utiliser uniquement la mise à jour des classes. Dans ce cas,URL
etData
.Cependant,
URL
est relié àNSURL
etData
est relié àNSData
de sorte que vous pouvez convertir entre eux en cas de besoin.Je ne sais pas où
tweet.user.profileImageURL
est définie, mais elle semble être à l'aide deNSURL
si vous avez besoin de le jeter auxURL
dans votre code.Il dit "Peut appeler lancer, mais n'est pas marqué avec essayer". J'ai l'impression que je suis en train de faire quelque chose de mal. Je ne pense pas que l'initialiseur doit lever une erreur.
J'ai oublié le fait que
Data(contentsOf:)
peut renvoyer une erreur. Voir ma réponse mis à jour.Je vous remercie beaucoup. Il a travaillé.
J'allais sous l'hypothèse que
profileImageURL
est à partir de certaines API, qui la définit commeNSURL
. Vous avez raison, si c'est déjàURL
puis le casting n'est pas nécessaire, et si l'OP déclaré leur propre code pour êtreNSURL
puisURL
devrait être utilisé à la place.OriginalL'auteur rmaddy