我对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中没有,请使用用作数据源的数组来访问所选对象。

这应该可以解决您的问题:)

10-05 20:26