Mon application partage la photo sur Instagram, pour ce faire, elle l'enregistre d'abord dans un répertoire temporaire:
let writePath = NSTemporaryDirectory().stringByAppendingPathComponent("instagram.igo")
Il fonctionnait Swift 1.2
, mais ne fonctionne pas Swift 2.0
.
Le message d'erreur donné est:
stringByAppendingPathComponent n'est pas disponible: utilisez plutôt URLByAppendingPathComponent sur NSURL.
Application%20Support
stringByAppendingPathComponent
, voir ma réponse ci-dessous.NSURL
méthode mais unNSString
stringByAppendingPathComponent
est supprimé dans Swift 2.0" n'est pas correct, et @Maysam n'a pas demandé uniquement laNSURL
méthode.Cela fonctionne pour
NSString
que vous puissiez l'utiliser comme ceci:Vous pouvez maintenant utiliser cette extension qui convertira votre
String
enNSString
premier, puis effectuera l'opération.Et votre code sera:
Voici quelques autres méthodes d'utilisation:
Référence de ICI .
Pour swift 3.0:
la source
NSURL
s doit être utilisé à la place. Juste dire.checkResourceIsReachable()
oucheckPromisedItemIsReachable()
à laURL
place.FileManager
est toujours une classe ObjCNSFileManager
avec leNS
préfixe supprimé pour Swift etfileExistsAtPath
était là depuis OS X 10.0. Le monde a évolué depuis et comme les applications sont en bac à sable (ce qui est moins évident sur iOS), le fichier peut exister, vous n'avez peut-être pas la permission de le voir; aussi, le fichier peut être dans le cloud, etc. C'est pourquoi laBOOL
méthode simple est remplacée par quelque chose de plus complexe pourURL
, mais plus sémantiquement correct.Enroulez simplement votre chaîne comme
NSString
.la source
String
classe n'a pas cela maisNSString
existe! logique.pour Swift 3 :
ou mieux créer cette extension:
usage:
la source
Solution Swift 3:
Voici une fonction pour obtenir le chemin du répertoire des documents-
Comment utiliser:
Résultat:
la source
Pour Swift 2.0
la source
Vous pouvez utiliser URLByAppendingPathComponent () à la place. Veuillez noter que vous devez couper la chaîne de chemin pour supprimer le préfixe "file: //":
la source
Procédez comme suit:
la source
J'ai essayé ceci et cela a résolu le problème.
avant:
après:
la source
Si l'utilisation de
NSString
méthodes de chemin (au lieu deString
méthodes URL) est acceptable, il est beaucoup plus facile d'étendreString
avec une propriété calculée ou une méthode renvoyant sa valeur commeNSString
(au lieu de dupliquer les méthodes souhaitées dans l'String
extension):puis:
la source
Swift 4
la source