首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确使用FileManager?

如何正确使用FileManager?
EN

Stack Overflow用户
提问于 2020-10-17 02:54:45
回答 1查看 49关注 0票数 0

我使用

代码语言:javascript
复制
let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group....")?.appendingPathComponent("hello")
            let data = Data("289".utf8)
            try! data.write(to: url!)
            
            let url2 = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.co...")?.appendingPathComponent("mannschaft")
            let data2 = Data("114".utf8)
            try! data2.write(to: url2!)

在文件中写入一些数据。

稍后,我在不同的swift文件上使用这两个文件:

代码语言:javascript
复制
let teamId: String = {
            let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.co....")?.appendingPathComponent("hello")
            let data = try! Data(contentsOf: url!)
            let string = String(data: data, encoding: .utf8)!
            return string
            }()

代码语言:javascript
复制
let vergleichmannschaft: String = {
        let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.co...")?.appendingPathComponent("mannschaft")
        let data = try! Data(contentsOf: url!)
        let string = String(data: data, encoding: .utf8)!
        return string
        }()

去读它。但是模拟器发出刺耳的声音,说:Thread 1: Fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=260 "The file “mannschaft” couldn’t be opened because there is no such file." UserIn

"hello“有效,但"mannschaft”无效

EN

回答 1

Stack Overflow用户

发布于 2020-10-17 03:07:42

除非您确信try!永远不会失败,否则您永远不应该使用它。您需要确保该文件存在于该位置,或者返回一个emptyString。您还应该将其设置为计算属性。在获取文件内容之前,请确保您已经创建了文件。顺便说一下,您应该将".txt" pathExtension添加到您的文本文件名中:

代码语言:javascript
复制
var vergleichmannschaft: String {
    guard let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.co...")?.appendingPathComponent("mannschaft.txt") else {
        return ""
    }
    return (try? String(contentsOf: url,encoding: .utf8)) ?? ""        
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64394890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档