Как связать TextField, Button с SQLLite на Swift?

Установка и настройка SQLLite для iOS:

1. Шагом первым, необходимо установить SQLite библиотеку для iOS. Вам понадобится установить Cocoapods, если вы еще этого не сделали. Откройте Terminal и выполните следующую команду:

sudo gem install cocoapods

2. Создайте новый проект в Xcode и перейдите в директорию вашего проекта в Terminal. Инициализируйте Cocoapods:

pod init

3. Откройте файл Podfile в вашем редакторе и добавьте следующую строчку:

pod 'SQLite.swift', '~> 0.12.0'

4. Сохраните и закройте файл Podfile, а затем выполните команду:

pod install

Это загрузит и установит SQLite библиотеку в ваш проект.

Создание базы данных и таблицы:

1. Создайте новый Swift файл с именем DatabaseManager.swift и добавьте следующий код:

import SQLite

class DatabaseManager {

    static let sharedInstance = DatabaseManager()

    var database: Connection?

    private init() {
        do {
            let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
            database = try Connection("(path)/database.sqlite3")
        } catch {
            print("Error connecting to database: (error)")
        }
    }

    func createTable() {
        do {
            try database?.run(TableDefinition())
        } catch {
            print("Error creating table: (error)")
        }
    }

    func insertData(data: String) {
        let insertData = Table("Data")
        let text = Expression<String>("text")
        
        do {
            try database?.run(insertData.insert(text <- data))
        } catch {
            print("Error inserting data: (error)")
        }
    }

    func fetchData() -> [String]? {
        var dataArray = [String]()
        let fetchData = Table("Data")
        let text = Expression<String>("text")
        
        do {
            for data in try database!.prepare(fetchData) {
                dataArray.append(data[text])
            }
        } catch {
            print("Error fetching data: (error)")
        }
        
        return dataArray.count > 0 ? dataArray : nil
    }
}

struct TableDefinition: TableCreation {
    
    let tableName = "Data"
    
    let text = Expression<String>("text")
    
    func createTable(in db: Connection) throws {
        try db.run(table.create { table in
            table.column(text)
        })
    }
}

2. В вашем AppDelegate.swift добавьте следующий код для создания таблицы при запуске приложения:

func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    DatabaseManager.sharedInstance.createTable()
    return true
}

Использование TextField, Button и SQLLite:

1. Создайте новый View Controller и разместите на нем TextField для ввода данных и Button для сохранения их в базу данных.

2. Создайте outlet и action для TextField и Button в вашем View Controller.

3. В методе action для Button добавьте следующий код, чтобы сохранить данные из TextField в базу данных:

@IBAction func saveButtonTapped(_ sender: UIButton) {
    if let data = textField.text {
        DatabaseManager.sharedInstance.insertData(data: data)
        textField.text = ""
    }
}

4. Опционально, вы можете создать отдельный метод для обновления UI со списком сохраненных данных из базы данных:

func updateUI() {
    if let data = DatabaseManager.sharedInstance.fetchData() {
        // Обновление UI с использованием массива сохраненных данных
    } else {
        // Обновление UI, если нет сохраненных данных
    }
}

Вызывайте этот метод после сохранения данных и при загрузке View Controller.

Ваш TextField будет связан с SQLLite базой данных через созданный DatabaseManager и методы insertData и fetchData.