我是SWIFT的新手,我已经为数据处理创建了单独的SWIFT文件.它包括以下函数.我想用另一个快速文件调用它,我该怎么做呢?

import Foundation
import CoreData

internal struct DataManager{
    static let shared = DataManager()
    let persistentContainer: NSPersistentContainer = {
        let container = NSPersistentContainer(name: "eduDemo")
        container.loadPersistentStores {(storeDescription,error) in
            if let error = error {
                fatalError("Loading of store failed \(error)")
            }
        }
        
        return container
    }()



@discardableResult func createUser(email:String,password:String) -> Userdetails? {
    let context = persistentContainer.viewContext
    
    let userdetails = NSEntityDescription.insertNewObject(forEntityName: "Userdetails", into: context) as! Userdetails
    
    userdetails.email=email
    userdetails.password = password
    
    do {
        try context.save()
        return userdetails
    } catch let createError{
        print("Failed to create: \(createError)")
    }
    
    return nil
    
}

}

我正在try 调用的函数在另一个快速文件中的函数上面

  @IBAction func registerPressed(_ sender: Any) {
        
        let Email: String =  email.text!
        let Pwd: String = password.text!
        
        DataManager.createUser(email:Email, password: Pwd)
        
     
    } 

但它给了我以下错误.我在这里做错了什么.

Instance member 'createUser' cannot be used on type 'DataManager'; did you mean to use a value of this type instead?

推荐答案

这是因为您正try 在类级别上使用实例函数.相反,请参考您创建的单身shared:

DataManager.shared.createUser(...)

Swift相关问答推荐

如何使用变量 Select 哪个向量(?)在我的 struct 中密谋吗?

正在接收具有不完整数据错误的URL请求

如何增加 NSStatusBar 图像大小?

Swift String.firstIndex(of: "\n") 返回 nil,即使字符串有 \n

在 Swift 5.7 中使用协议作为类型时什么时候需要写 `any`

带有可选字符串作为键路径的 SwiftUI iOS16 表

如何在 swiftui 中设置给定字符串类型日期的日期倒计时?

从 actor 的 init 方法调用方法

将 struct 作为泛型类型传递并访问该泛型类型属性

如何让动画变慢 SwiftUI

SwiftUI:当先前的视图列表更改时,NavigationView 详细视图会弹出回栈

如何获得不同的插入和移除过渡动画?

在视图中设置所有变量

通用枚举菜单 SwiftUI

macOS 守护进程应该由Command Line ToolXcode 模板制作吗?

Swift 2 或 3 中的 Google Analytics 问题

如何删除桥头而不出错?

你如何在 UIBarItem 中使用 setTitleTextAttributes:forState?

在 unwind segue 之后执行 push segue

Swift UITableView reloadData 在一个闭包中