Reputation: 615
Given below is my function written in swift this code works fine in 10.0 version of iPhone but gives an error in 9.0 saying
CFURLCopyResourcePropertyForKey failed because it was passed an URL which has no scheme Failed to load: The file “Recording2017-03-06_11.08.53000.mp3” couldn’t be opened.
partFileURL will be having
/private/var/mobile/Containers/Data/Application/B8F9055D-D816-4E27-BA2A-B13F0EE97709/tmp/Recording2017-03-06_11.08.53000.mp3
This is my below function-:
//function
func putPartUplaod(partFileURL:URL , partFileNumber:Int)
{
var partfileData:Data?
var md5hash:Any?
var sha256hash:Any?
// var error: NSError?
let uri:URL = NSURL(fileURLWithPath: partFileURL.absoluteString) as URL
//Get MD5 Digest
do{
print(partFileURL)
partfileData = try NSData(contentsOf: uri, options: NSData.ReadingOptions.dataReadingMapped) as Data
print("hello" , partfileData);
md5hash = partfileData?.md5().base64EncodedString()
}catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}
Upvotes: 3
Views: 280
Reputation: 5113
You can use something like NSData *data = [[NSFileManager defaultManager] contentsAtPath:path];
The string that you're passing in is not a valid URL, it's just a file path. For making it URL, you would need to add the scheme which would be file://
.
Upvotes: 2
Reputation: 17721
/private/var/mobile/Containers/Data/Application/B8F9055D-D816-4E27-BA2A-B13F0EE97709/tmp/Recording2017-03-06_11.08.53000.mp3
is a file path and not a url. A url has a scheme (or protocol). See your error message. Create your url with
URL(fileURLWithPath:"/private/var/mobile/Containers/Data/Application/B8F9055D-D816-4E27-BA2A-B13F0EE97709/tmp/Recording2017-03-06_11.08.53000.mp3")
Upvotes: 2