首页 > 解决方案 > 使用文件路径初始化 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)
        }
})

标签: iosswiftofflinearcgis-runtimeesri-maps

解决方案


以前我只是将geoDatabse的路径保存到首选项(创建geoDatabse时),当我重新启动应用程序时,即使文件在那里,应用程序也没有检测到该位置的geoDatabse。

我发现这个问题的解决方案是在运行时检测geoDatabse路径并使用FileManager创建路径。然后它工作。


推荐阅读