Meu aplicativo compartilha foto no Instagram; para isso, ele primeiro é salvo em um diretório temporário:
let writePath = NSTemporaryDirectory().stringByAppendingPathComponent("instagram.igo")
Ele estava trabalhando Swift 1.2
, mas não funciona Swift 2.0
.
A mensagem de erro fornecida é:
stringByAppendingPathComponent está indisponível: use URLByAppendingPathComponent em NSURL.
Application%20Support
stringByAppendingPathComponent
, veja minha resposta abaixo.NSURL
método, mas sim um #NSString
stringByAppendingPathComponent
foi removido no Swift 2.0" não está correto, e o @Maysam não pediu apenas oNSURL
método.Está funcionando para
NSString
que você possa usá-lo assim:Agora você pode usar esta extensão que irá converter o seu
String
emNSString
primeiro e depois executar a operação.E seu código será:
Aqui estão alguns outros métodos para uso:
Referência AQUI .
Para o Swift 3.0:
fonte
NSURL
deve ser usado s. Apenas dizendo.checkResourceIsReachable()
oucheckPromisedItemIsReachable()
emURL
vez disso.FileManager
ainda é uma classe ObjCNSFileManager
com oNS
prefixo removido para Swift efileExistsAtPath
existe desde o OS X 10.0. O mundo evoluiu desde que, e como os aplicativos estão em área restrita (o que é menos óbvio no iOS), o arquivo pode existir, você pode não ter permissão para visualizá-lo; além disso, o arquivo pode estar na nuvem etc. É por isso que oBOOL
método simples é substituído por algo mais complexoURL
, mas mais semanticamente correto.Simplesmente enrole sua corda como
NSString
.fonte
String
class não tem isso, masNSString
existe! faz sentido.para Swift 3 :
ou melhor, crie esta extensão:
uso:
fonte
Solução Swift 3:
Aqui está uma função para obter o caminho do diretório de documentos
Como usar:
Resultado:
fonte
Para swift 2.0
fonte
Você pode usar URLByAppendingPathComponent (). Observe que você deve aparar a cadeia de caminho para remover o prefixo "file: //":
fonte
Faça o seguinte:
fonte
Eu tentei isso e resolveu o problema.
antes:
depois de:
fonte
Se o uso de
NSString
métodos de caminho (em vez deString
métodos de URL) for aceitável, é muito mais fácil estenderString
com uma propriedade computada ou um método retornando seu valor comoNSString
(em vez de duplicar os métodos desejados naString
extensão):e depois:
fonte
Swift 4
fonte