swift - 在这里,我试图将数据存储在 Swift4 的文本文件中,但它不起作用
问题描述
在这里,我只是想向文件中插入一个测试字符串,但它没有写任何东西,甚至没有向我显示任何错误。
import UIKit
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBOutlet weak var task: UITextField!
@IBAction func addTaskClicked(_ sender: Any) {
if(task.text != ""){
todo.append(task.text!)
task.text = ""
var newString = "Testing"
do {
try newString.write(to: Bundle.main.url(forResource: "todoList", withExtension: "txt")!, atomically: true, encoding: String.Encoding.utf8)
}catch let error as NSError{
print("\(error)")
}
}
}
}
解决方案
我认为你不能这样做,如果你需要保存一个字符串,你可以连接到数据库/api,或者你可以在用户默认值中保存东西:
let defaults: UserDefaults = UserDefaults.standard
defaults.set("what you want to save", forKey: "key")
你得到它是这样的:+
编辑感谢@vadian
if let data = defaults.object(forKey: "key") {
//do whatever you need to do
}
我真的不认为在文件中写东西是制作 TODO 列表的最佳方法,对存储的信息做任何事情都会比它应该做的更烦人。
推荐阅读
- python - Django 400:错误请求 此字段为必填项
- hibernate - 查询字符串中出现意外的“来自” - JAva 休眠
- spring-boot - Application.properties 和 r2dbc
- python - Pygame 随机移动敌人
- gulp - 如何运行 gulp 的本地版本和任何节点可执行文件的本地版本?即,不是全局安装的版本
- java - 为什么即使我的代码正确,我的代码在“Gdx.graphics.getWidth()/2”下也会出现红色下划线错误?
- swift - 如何对采用类型的 swift 协议设置约束?
- python-3.x - 从列表中创建一个具有名称的变量
- flutter - Flutter TextFormField 不会取消关注前一个
- angular - 带有ngrx / store的角度分页表