Nie można otworzyć pliku, ponieważ typ adresu URL http nie jest obsługiwany


Używając iOS 9, próbuję użyć
NSFileManager
moveItemAtURL
:
do {
print(localURL)// [url=http://localhost:3000/api/v1/activities]http://localhost:3000/api/v1/activities[/url]
print(cacheFile)// file:///Users/kyledecot/Library/Developer/CoreSimulator/Devices/35C03988-D8F5-42E5-AB35-B99BE461EEAE/data/Containers/Data/Application/69593B3A-F764-4BC3-89AD-72B701BF85C8/Library/Caches/activities.json
try fileManager.moveItemAtURL(localURL, toURL: cacheFile)
} catch let error as NSError {
print(error)
}

Kiedy łapię błąd, otrzymuję:

Error Domain = NSCocoaErrorDomain Code = 262 "Nie można otworzyć pliku„ aktywności ”, ponieważ typ adresu URL http nie jest obsługiwany." UserInfo = {NSURL =

http://localhost:3000/api/v1/activities
http://localhost:3000/api/v1/activities
}


Aktualizacja nr 1
>
Dodałem już odpowiednie wartości do mojej
Info.plist
, aby upewnić się, że ATS jest zadowolony (patrz zrzut ekranu). Dziwne jest to, że mogę pobierać dane z mojego lokalnego serwera za pomocą HTTP (przez
dataTaskWithRequest:
), ale NSFileManager następnie narzeka na ten sam adres URL podczas próby wykonania
moveItemAtURL
.
https://i.stack.imgur.com/fBwMe.png
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Należy wiedzieć o dwóch rzeczach:
  • W iOS 9
    http://
    nie jest domyślnie obsługiwany. Musisz bezpiecznie komunikować się (za pomocą
    https://
    ). możesz wyłączyć tę funkcję w swoim Info.plist , Jeśli potrzebujesz.
  • Adresy URL NSFileManager muszą być ścieżkami do plików na dysku - to znaczy muszą być plik Adresy URL. Pozdrawiam, nie; to jest adres URL
    http://
    . Jeśli Twoim celem jest pobranie pliku, a następnie skopiowanie go gdzieś, użyj zadania pobierania NSURLSession.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się