【发布时间】:2018-11-09 09:15:20
【问题描述】:
我知道周围有很多类似的问题 - 我担心我的问题处于如此基本的水平,我能找到的所有其他问题都要复杂得多,但似乎并不能完全回答这个问题。
我正在我的日记应用中实现“设置” - 我需要让用户能够编辑(除其他外)日记的名称。
要了解我的问题:对于应用程序中的初学者,您有一个包含所有当前日记的 tableView - 然后当您输入特定日记时,您可以在此处找到“设置”以编辑此特定日记。
在这里,当单击名为“日记名称”的 tableViewCell 时,您会输入一个简单的 viewController,其中包含一个文本字段(保存您当前的日记名称)和一个按钮,该按钮将弹出您并将日记名称更改为新的输入文本域。
这是我目前在这个“保存按钮”上的代码:
@IBAction func saveChanges(_ sender: Any) {
let newDiaryName = Diaries() // Here, I need to reach the specific diary that we are currently editing!
diary?.diaryName = changeDiaryNameTextField.text!
let realm = try! Realm()
try! realm.write {
realm.add(newDiaryName)
}
self.navigationController?.popViewController(animated: true)
}
}
对不起,我是这个世界上的新人……
我的问题是:我到底是如何到达我现在所在的具体日记的? - 当想要更新对象时,这个功能是否正确?
回到包含所有日记列表的第一个 tableView,我已经像这样保存日记:
(所以我猜一本日记类似于 allDiaries[indexPath].. 但是我如何从另一个 viewController 获得它?)
let allDiaries: Results<Diaries>
required init?(coder aDecoder: NSCoder) {
let realm = try! Realm()
allDiaries = realm.objects(Diaries.self).sorted(byKeyPath: String("dateCreated"), ascending: false)
super.init(coder: aDecoder)
}
对不起,解释太长了,我不知道该怎么问!
谢谢!
【问题讨论】:
-
请不要附图片,代码是正确的。
-
打开包装 :) 点击红色圆圈,xcode 会建议你 :)
-
强制展开使警告再次静音,但应用程序仍然崩溃。抱歉,我再把照片拍下来。
-
请提供代码,如果可能的话,应用程序崩溃时的错误消息是什么
-
好吧,当我像这样强制展开时:'realm.add(newDiaryName!)' 和当我这样做时:'let newDiaryName = diary!',我得到错误'线程 1 : 信号 SIGABRT'