ios - 使用文件路径初始化 AGSGeodatabase 的对象正在返回“找不到文件
问题描述
我想在 esri 社区上发布这个问题,但我无法在那里登录。
我创建了离线地理数据库并将其中的图层显示到地图上。
我的问题是当我下载 geoDatabse 并显示其中的数据第一次正常工作时。但是当我重新启动应用程序并从路径创建 AGSGeodatabase 对象时,“self.generatedGeodatabase.load”函数会出错
Error Domain=com.esri.arcgis.runtime.error Code=14 "File not found" UserInfo={NSLocalizedFailureReason=, NSLocalizedDescription=File not found, Additional Message=}
我创建的网址是:-
file:///var/mobile/Containers/Data/Application/60CF7AE1-2DE1-4FA0-805A-6140D4829E89/Documents/GeoDatabase/2018-05-134T18:29:01+0530.geodatabase
我正在创建对象是这样的:-
if let geoDatabasePath = URL(string: SettingsManager.geoDatabasePath) {
self.generatedGeodatabase = AGSGeodatabase(fileURL: geoDatabasePath)
self.displayLayersFromGeodatabase()
}
此函数运行时出现错误:-
self.generatedGeodatabase.load(completion: { [weak self] (error:Error?) -> Void in
if let error = error {
print(error)
}
})
解决方案
以前我只是将geoDatabse的路径保存到首选项(创建geoDatabse时),当我重新启动应用程序时,即使文件在那里,应用程序也没有检测到该位置的geoDatabse。
我发现这个问题的解决方案是在运行时检测geoDatabse路径并使用FileManager创建路径。然后它工作。
推荐阅读
- jhipster - jhipster 并排生成器(一次)
- ckan - CKAN:更新 metadata_created 和 metadata_modified 信息
- powershell - 如何在每个整数后添加新行
- javascript - 如何在 React JS 和 webpack 中使用 moment.js 格式化时间
- reactjs - 如何在打字稿声明中指定类型参数?
- sql - 如何从整个sql表列中搜索最后两个字符匹配
- typescript - 比较具有相同父类的派生类的实例
- matlab - 如何在矩阵的范数中使用粒子群优化
- vue.js - 通过发出的事件 .sync 修饰符对孩子进行变异究竟是做什么的?
- python - 二进制分类模型打开 cv 错误