[英]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.