chargement d'objet de données à partir d'un fichier local dans Swift 3
J'ai du mal à obtenir une image de chargement du fichier à Swift 3.
Voici le code:
do {
let imageData = try Data(contentsOf: imageUrl2.asURL())
} catch {
print ("loading image file error")
}
Et l'actuelle Chaîne d'Url est:
file:///Users/veikoherne/Library/Developer/CoreSimulator/Devices/889A08D5-B8CC-458C-99FF-643A4BA1A806/data/Containers/Data/Application/F64ED326-7894-4EE7-AA3B-B1BB10DF8259/Documents/img2017-03-23 17:39:24.jpg
et, évidemment, j'ai vérifié que ce fichier existe et est valide image. Il finit toujours par me dire "charger un fichier image d'erreur". Quelqu'un a des expériences de chargement des données locales Swift 3?
La réponse a été mentionné, à l'aide de NSData objet et probablement Swift 2. Swift actuel 3 refuse de pont NSData de Données, c'est pourquoi j'ai d'utilisation des Données.
- D'où vient
imageUrl2
viennent? Et ce n'asURL()
? Et vous pouvez imprimer le réel pris erreur plutôt que d'une chaîne générique. - exprime quelques bonnes questions. Un de plus: ...des expériences de chargement de données locales... - local à quoi? Votre projet, un Cadre, le système d'exploitation du système de fichiers...??? Je vais ajouter une option de plus à la recherche à votre URL - est-ce dans la bibliothèque de Photos? Croyez-moi, il ya plusieurs endroits, chacun avec une "meilleure" façon d'obtenir à eux.
- Double Possible de comment charger une image à partir d'un chemin local ios swift (en chemin)
- La réponse est à l'aide de NSData qui était OK dans Swift 2. Swift 3 me demande d'utiliser les Données au lieu de NSData..
- à @vadian imageUrl est la chaîne de caractères pour le fichier et que les Données de l'objet a besoin d'URL, je dois convertir la Chaîne d'Url à l'aide .asURL(). Ce n'est pas une photo de la bibliothèque, c'est une image que j'ai dans l'app store répertoire documents. Évidemment, je suis en utilisant le dernier xCode pour avoir Swift 3.
- Je sais ce que c'est censé être, mais le moyen d'obtenir la chaîne de caractères peut être fausse et la manière de créer l'URL peut aussi être mauvais. Encore une fois, l'impression que l'erreur dans la clause catch. La question est trop vaste.
- à @vadian: L'erreur peut être vide, mais j'ai vu "Url non Valide" ainsi. C'est pourquoi j'ai posté ma Chaîne Url.
- C'est au moins un indice. Il est alors probable que le
asURL()
fonction crée une URL non valide – l'on soupçonne la présence en très mon premier commentaire. Vérifier que.
Vous devez vous connecter pour publier un commentaire.
Chargement de données à partir d'un fichier local, vous devez utiliser "contentsOfFile:" la méthode.
Lien de référence: https://www.hackingwithswift.com/example-code/strings/how-to-load-a-string-from-a-file-in-your-bundle
Ainsi dans le cas de la lecture des données, vous pouvez utiliser:
La lecture d'un texte brut comme une Chaîne de caractères, utilisez:
De la lecture d'une image à partir du répertoire de documents, utilisation:
Espère que ce serait utile!
J'ai connu le même problème lorsque j'essaie de récupérer un fichier que je viens de télécharger. Si vous avez enregistré un fichier à partir d'une url comme je l'ai fait, cela devrait fonctionner: