我对MakeSchool快速教程有疑问。在“部分新建注释控制器”教程中实施MakeNotes的过程中,将创建选定的注释以提供某种提示。
“可以向类中添加selectedNote变量以存储选定的Note吗?提示您需要取消注释第一条注释行,以便可以分配selectedNote。”
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//1
//selectedNote = notes[indexPath.row]
// 2
//self.performSegueWithIdentifier("ShowExistingNote", sender: self)
}
我尝试执行所有步骤,但是程序在此行崩溃。你能帮我吗?
最佳答案
阿塔利克
您尚未提供崩溃或崩溃日志的原因。所以这是我看到的两种可能性。
可能性1:
您可能尚未声明selectedNote变量。
解
在yourViewController中,在取消注释第1行之前,声明一个名为selectedNote的属性。您尚未指定要保存在notes数组中的数据类型,因此无法为您提供selectedNote变量的完美声明。
喜欢,
var selectedNote : notes_data_type_here!
该语句将为您创建一个称为selectedNote的隐式可选变量。我将其声明为类变量,因为我相信您会在prepareForSegue中使用它。您只是猜测而没有提供足够的代码。
可能性2
您的notes数组可能为nil。从教程中复制时,可能会用到您不同的数组作为tableView的数据源,并且可能正在didSelectRowAtIndexPath中访问nil数组。
解
检查您的notes数组是否被用作表数据源。如果didSelectRowAtIndexPath中没有,请使用用作数据源的数组来访问所选对象。
这应该可以解决您的问题:)