我正在尝试在iPhone上的文本文件中保存一堆GPS位置。我一直在遵循从网上收集的建议,但是,尽管该应用程序运行良好,但没有创建文件。至少在XCode窗口->设备和模拟器->(应用程序名称)下看不到任何东西。
目标是在以应用程序启动的日期/时间命名的文件夹下的“ position”文件夹中创建一个名为“ 1”的文件,该文件夹又位于Document文件夹下。例如:2018-07-21-16-35-43 / position / 1
我正在XCode 9(最新)中用Swift 4.2编写此代码。
我得到如下所示的Document文件夹(rideStart = Date()):
let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
if let docUrl = urls.first {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd-HH-mm-ss"
let dateText = dateFormatter.string(from: rideStart)
positionUrl = docUrl.appendingPathComponent(dateText)
}
当我准备写出几行文本时,请执行以下操作(locationCache是一个CLLocation对象的数组,而textForFile是一个扩展属性,用于将我想要的信息格式化为以逗号分隔的一组值,并终止与\ r \ n):
try? FileManager.default.createDirectory(at: positionUrl, withIntermediateDirectories: true)
let curUrl = positionUrl.appendingPathComponent("\(fileNumber)")
for loc in locationCache {
do {
let line = loc.textForFile
print(line)
try line.write(to: curUrl, atomically: true, encoding: .utf8)
}
catch {
print(error)
}
}
代码运行时不会引发任何错误,并且文本行将以预期的格式打印到控制台。
我是iOS和Swift的新手,我的绝大多数经验是在Windows下使用C#和javascript。我显然缺少一些简单和/或基本的东西。我在做什么错了?
其他信息
基于反馈,我在模拟器中运行了该应用程序。在弄清楚iPhone 6模拟器在我的Library文件夹中的位置之后,我确定实际上是在尝试创建文件(注意:我目前正在使用基于FileHandle的方法来写入文件,相反达到了这篇文章中显示的代码中的内容-但我已经测试了FileHandle方法针对物理iPhone硬件的方法,并且它仍然不会在XCode的“设备和模拟器”窗口中创建任何可见文件。
在评论中提出了一个观点:甚至可以从XCode中检查已连接/配对的iPhone上的文件吗?我从各个地方读过的书都认为应该有可能……但事实并非如此。