gpt4 book ai didi

ios - AppDelegate问题

转载 作者:行者123 更新时间:2023-11-29 02:13:02 24 4
gpt4 key购买 nike

我正在使用 Swift 开发我的第一个项目。我是 iOS 本身的新手。

我使用 Storyboard创建各种屏幕,例如注册、登录等。注册屏幕链接自登录屏幕。但是,只要我点击登录屏幕中的“注册”链接,应用程序就会崩溃。

我没有在默认 View Controller 中定义任何东西。但是,我在定义 App Delegate 的地方创建了注册用户 View Controller 。下面是我注册用户 View Controller 的代码:

class RegisterUserViewController: UIViewController {


@IBOutlet weak var FFName: UITextField!
@IBOutlet weak var FEmail: UITextField!
@IBOutlet weak var FPassword: UITextField!
@IBOutlet weak var FAge: UITextField!
@IBOutlet weak var FGender: UITextField!
@IBOutlet weak var FLocation: UITextField!


@IBAction func registerUser(sender: UIButton) {
//define an app delegate
//define a managed context
//define an entity description
//perform entity operation like add, delete, search
//save the context

var appDel = UIApplication.sharedApplication().delegate as AppDelegate
var context:NSManagedObjectContext = appDel.managedObjectContext!
var newUsr = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObjectContext

newUsr.setValue("myusername", forKey: "username")
newUsr.setValue(FFName, forKey: "fullname")
newUsr.setValue(FEmail.text, forKey: "email")
newUsr.setValue(FPassword.text, forKey: "password")
newUsr.setValue(FAge, forKey: "age")
newUsr.setValue(FGender, forKey: "gender")
newUsr.setValue(FLocation, forKey: "location")

context.save(nil)
println(FFName.text)
println(FEmail.text)
}

您能否建议这是否是使用 App Delegates 的正确方式,或者我是否需要在 AppDelegate.swift 中定义任何内容?

感谢任何信息。

谢谢

最佳答案

注意:一般建议

您正在从 ViewController 引用 AppDelegate 以获取上下文。

这行得通,但创建了 VC 对 appDelegate 的依赖...不是最好的事情 :D

两种选择:- 给 View Controller 一个 var ctx 并将它从 appDelegate 传递给它- 创建一个具有 CD 堆栈的 DataStoreManager 类。 (这将此代码移出 appDelegate,这是理想的恕我直言 - 设置 CD 堆栈并不真正属于 Controller )

不过最后:这也归结为个人喜好

关于ios - AppDelegate问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29071475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com