致命错误:在顶层引发错误:无法打开文件进行写入

问题描述 投票:0回答:1

我想测试https://github.com/KarthikRIyer/swiftplot,这样我就可以在我的项目中使用它,但我收到了

Fatal error: Error raised at top level: failed to open file for writing
错误,我无法很好地理解。

这是我的代码和我尝试过的(我知道我必须实现良好的 try catch,但我想先测试它):

import Foundation
import SwiftPlot
import AGGRenderer

let x:[Float] = [10,100,263,489]
let y:[Float] = [10,120,500,800]
let filePath = "/Users/ama25/Desktop/"
let fileName = "test"
let url = URL(string: filePath + "agg/" + fileName)

var agg_renderer: AGGRenderer = AGGRenderer()
var lineGraph = LineGraph<Float,Float>(enablePrimaryAxisGrid: true)
lineGraph.addSeries(x, y, label: "Plot 1", color: .lightBlue)
lineGraph.plotTitle.title = "SINGLE SERIES"
lineGraph.plotLabel.xLabel = "X-AXIS"
lineGraph.plotLabel.yLabel = "Y-AXIS"
lineGraph.plotLineThickness = 3.0
var output = try lineGraph.drawGraphAndOutput(fileName: fileName + "agg/" + fileName ,renderer: agg_renderer)

var data = Data(buffer: UnsafeMutableBufferPointer(start: &output, count: 1))
try data.write(to: url!)

错误:

Swift/ErrorType.swift:200: Fatal error: Error raised at top level: failed to open file for writing

该行给出了错误:

libswiftCore.dylib`:
->  0x1977e1564 <+0>: ret    

这就是我收到的所有日志,仅此而已。

我必须注意,所有内容都已更新到最新版本,我从库的

README
复制了此代码,并对其进行了一些修改,以便我可以看看是否可以先修复它。我正在尝试在 macOS 而不是 iOS 上运行它。

更新:我尝试关闭沙箱,但仍然遇到这个问题。

swift xcode macos
1个回答
0
投票

URL(string:)
是创建文件系统 URL 的错误 API,它需要一个以方案开头的字符串,在本例中为
file://

正确的 API 是

URL(filePath:)

或兼容iOS 16/macOS 13之前的系统

URL(fileURLWithPath:)

必须禁用更多沙箱。

© www.soinside.com 2019 - 2024. All rights reserved.