我对 swift 还很陌生,只是通过以下教程来学习核心数据基础知识。
我尝试使用中断来缩小抛出异常的范围。我相信这是当我尝试通过 View Controller 传递数据时。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "Update" {
// var selectedItem: NSManagedObject = myList[self.tableView.indexp] as NSManagedObject
let IVC: CreateRiderViewController = (segue.destinationViewController as? CreateRiderViewController)!
var indexPath: NSIndexPath = self.tableView.indexPathForSelectedRow()!
var selectedItem: NSManagedObject = myList[indexPath.row] as! NSManagedObject
IVC.firstName = (selectedItem.valueForKey("firstName") as?String)!
IVC.lastName = (selectedItem.valueForKey("lastName") as! String?)!
IVC.phoneNumber = (selectedItem.valueForKey("phoneNumber") as! String?)!
IVC.eMail = (selectedItem.valueForKey("eMail") as! String?)!
IVC.exitingItem = selectedItem
}
}
我尝试传递此数据的 View Controller 也看起来像这样。
class CreateRiderViewController: UIViewController {
@IBOutlet weak var firstNameField: UITextField!
@IBOutlet weak var lastNameField: UITextField!
@IBOutlet weak var phoneNumberField: UITextField!
@IBOutlet weak var eMailField: UITextField!
var exitingItem: NSManagedObject!
var firstName: String = ""
var lastName: String = " "
var phoneNumber: String = " "
var eMail: String = " "
override func viewDidLoad() {
super.viewDidLoad()
if (exitingItem != nil) {
firstNameField.text = firstName
lastNameField.text = lastName
phoneNumberField.text = phoneNumber
eMailField.text = eMail
}
// Do any additional setup after loading the view.
}
它应该将文本字段文本设置为从我的第一个 View Controller 中选择的行。然而,当我选择一行时,程序似乎在转换 View Controller 时崩溃。
我收到的错误是
2015-06-09 15:53:51.193 ARRR[37189:4601772] -[UITextInputTraits length]: unrecognized selector sent to instance 0x7fc129f60800
2015-06-09 15:53:51.198 ARRR[37189:4601772] *** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[UITextInputTraits length]: unrecognized selector sent to instance 0x7fc129f60800'
我相信我在错误的时间打开了一些东西,但无法弄清楚。
我还试图更好地分享信息,以获取解决问题的帮助,并且希望得到关于如何更清楚地解释我的问题并知道我是否包含正确的代码/错误消息来查找问题的反馈。问题。
最佳答案
检查您的 UITextField 是否已连接到 ViewController。 按住 ctrl 键单击 Storyboard中的所有 UITextField 并检查损坏的链接(您可能已在代码中创建了一个 socket ,但更改了其名称)。还要检查 ViewController 中的所有导出是否已连接(初始化线左侧出现一个圆圈,如果已填充则已连接,如果是空圆圈则表示链接已损坏)
关于swift - Swift 中以 NSException 类型的未捕获异常终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741839/