Swift,iOS.如何构建自定义URL类以从特定存储返回数据



我有一个应用程序,在类上请求URL来读取文件。我可以重载返回URL的函数。我希望返回存储在SQLite数据库中的数据,而不是本地文件或http url。

我的代码就像

class MyClass: BaseClass {
override func url(x:Int, y:Int) -> URL {
let url =
"https://someserver.com/(x)/(y).png"
return URL(string: tileUrl)!
}
}

这是原始代码,它从web加载一个文件。

但我在智能手机的本地SQLite数据库中缓存了这些数据。我想从中加载数据。所以,我需要一种方法将URL读取重定向到我的自定义代码。有可能吗?

也许是通过URL 创建的某种类

class MyCustomUrl:URL {
override func ... something ...
}

或者也许可以建立自定义的本地url方案?喜欢let url="myscheme://anything/(x(/(y(.png";在某个地方我必须注册";myscheme";在该应用程序内部工作?

在Swift中,有哪些可能的方法可以做到这一点?

所以,我自己找到了解决方案。

其思想是使用";数据:";具有url类的url方案

let data:Data = //... get your file data, NOTE, care about big size files
let base64String = data!.base64EncodedString()
let imgURIPath = "data:image/png;base64,(base64String)"
// content type is related to your file data type
return URL(string: imgURIPath)!

这对我有效

最新更新