繁体   English   中英

AppDelegate问题

[英]AppDelegate issues

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

我使用情节提要创建了各种屏幕,例如注册,登录等。 注册屏幕与登录屏幕链接。 但是,一旦我在“登录”屏幕中点击“注册”链接,该应用就会崩溃。

我没有在默认视图控制器中定义任何内容。 但是,我在定义App Delegate的地方创建了注册用户视图控制器。 下面是我的注册用户视图控制器的代码:

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

两种选择:-给视图控制器一个var ctx并从appDelegate传递给它-创建一个具有CD堆栈的DataStoreManager类。 (这会将代码移出理想的恕我直言的appDelegate -设置CD堆栈实际上并不属于控制器)

最后:它还归结为个人喜好

请删除注册按钮,然后再添加注册按钮..可能先前已声明动作存在,之后您更改了功能名称,因此发生了这种崩溃。

解决方案

  • 右键单击按钮,如果没有多余的方法可以删除,请查看已经绑定的操作方法。
  • 删除按钮,然后再次添加新按钮并绑定操作方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM