首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AppDelegate问题

AppDelegate问题
EN

Stack Overflow用户
提问于 2015-03-16 07:20:02
回答 2查看 208关注 0票数 0

我正在做关于Swift的第一个项目。我对iOS本身并不熟悉。

我创建各种屏幕,如注册,登录等使用故事板。寄存器屏幕是从屏幕中的标志链接。但是,当我点击屏幕上标志中的“注册”链接时,应用程序就会崩溃。

我还没有在默认视图控制器中定义任何东西。但是,我已经创建了注册用户视图控制器,我在其中定义了App。下面是注册用户视图控制器的代码:

代码语言:javascript
复制
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)
    }

请您建议一下,这是否是使用AppDelegate.swift的正确方式,还是我需要在AppDelegate.swift中定义任何东西?

感谢你提供的任何信息。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-16 07:36:07

注:一般意见

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

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

两个替代方案:-给视图控制器一个var ctx并从appDelegate传递给它--创建一个具有CD堆栈的DataStoreManager类。(这将代码从appDelegate中移出,这是理想的IMHO --设置CD堆栈并不真正属于控制器)

最后,这也取决于个人的喜好。

票数 1
EN

Stack Overflow用户

发布于 2015-03-16 07:33:11

请删除注册按钮和agin添加注册按钮。可能是以前声明的动作在那里,在那之后你已经更改了函数名,所以这种崩溃就会发生。

解决方案

  • 右键单击按钮,如果有不必要的方法,请查看已经绑定的操作方法,然后删除它。
  • 移除按钮并再次添加新按钮和绑定操作方法
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29071475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档