如何使用 swift UI 中的表单功能将用户输入发送到数据库? [关闭]

Posted

技术标签:

【中文标题】如何使用 swift UI 中的表单功能将用户输入发送到数据库? [关闭]【英文标题】:How do I send user inputs to a database using the forms feature in swift UI? [closed] 【发布时间】:2021-05-26 23:01:35 【问题描述】:

我是 swift UI 和一般编程的新手。到目前为止,我已经学习了基础知识,现在我希望能够在我的应用程序中设置一个简单的表单。我可以设计表格没问题。但我不确定调用 CIA 按钮操作的函数或将信息从用户获取到数据库的代码是什么。谁能帮忙解释一下如何设置以及使用哪个数据库来收集用户信息?

【问题讨论】:

在数据库中存储数据的方法有很多种——很可能您会想研究 CoreData,但也有 Firebase、Realm 等。还有一些非数据库解决方案,例如存储在 UserDefaults 或 JSON 文件中。您可以通过搜索找到 大量 的 CoreData SwiftUI 教程。这是一个很好的起点:hackingwithswift.com/books/ios-swiftui/… 试试Apple SwiftUI Tutorials 通过数据库,您是指云数据库(将信息保存到服务器)还是持久数据存储(将信息本地存储在您的设备上)就像@jnpdx所说,您可以使用Realm和Core Data进行本地存储,而您可以使用 Firebase 在云端存储信息。 【参考方案1】:

我无法为您设置数据库,因为每个数据库都有其独特的设置方式。但是,我给你一个基本结构,可以帮助你将 SwiftUI 视图链接到后端(你的数据库)。

设置表单

import SwiftUI

struct ContentView: View 
    @State var firstName = ""
    @State var lastName = ""
    @State var age = ""
    
    var body: some View 
        TextField("Enter First Name", text: $firstName)
        TextField("Enter Last Name", text: $lastName)
        TextField("Age", text: $age)
        Button(action: 
            addUser(firstName: firstName, lastName: lastName, age: Int(age) ?? 0)
        ) 
            Text("Save to database")
        
    

将结果保存到后端:

import CoreData

func addUser(firstName: String, lastName: String, age: Int) 
/*   
     code here would be using Core Data structure
     do not copy paste, only used as reference
*/
    let newUser = User(context: context)
    newUser.firstName = firstName
    newUser.lastName = lastName
    newUser.age = age
    
    do 
        try context.save()
        print("Successfully saved to Core Data.")
     catch 
        print(error.localizedDescription)
    
    

请记住,您必须自行研究如何使用自己的数据库保存结果。如果您使用的不是 Core Data,addUser() 中的代码将不起作用。在您的情况下,我建议您尝试 Firebase,也许您可​​以使用 Firebase Firestore,因为它似乎适合您的需求。

【讨论】:

非常感谢,这帮助很大

以上是关于如何使用 swift UI 中的表单功能将用户输入发送到数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

element-ui表单input输入框获取自动聚焦功能

element-ui表单input输入框获取自动聚焦功能

Swift UI集合视图 - 如何在Cell中显示“segued”用户输入?

Swift UI 如何从子视图中检索状态

如何将位于 UI View 中的长文本标签制作成 Swift 中的多行?

jQuery UI高亮效果可以应用于表单文本输入吗?