Я разрабатываю приложение ios с помощью быстрого доступа. Я использую xcode7.0.1. с TableViewController. Я хочу расширить, когда я нажимаю строку и рушится, когда снова нажимаю ее. Я следую учебнику от gitHub. Теперь я столкнулся с ошибкой Terminating app due to uncaught exception 'NSRangeException', reason: 'Cannot remove an observer
for the key path "frame" from <X.expandTips 0x145d8d20> because it is not registered as an observer.'
Завершение приложения из-за неотображенного исключения «NSRangeException», причина: «Не удается удалить наблюдателя - ios
Надеюсь, следующая строка кода вызовет проблему.
код Мой UITableViewCell класс:
func checkHeight(){
expandaple_view.hidden = (frame.size.height < expandTips.expandedHeight)
}
func WatchFrameChanges() {
addObserver(self , forKeyPath: "frame", options: .New, context: nil)
checkHeight()
}
func ignoreFrameChanges(){
removeObserver(self, forKeyPath: "frame")
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
if keyPath == "frame"{
checkHeight()
}
}
И в моем TableViewController код:
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
(cell as! expandTips) . WatchFrameChanges()
}
override func tableView(tableView: UITableView, didEndDisplayingCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
(cell as! expandTips) . ignoreFrameChanges()
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if (indexPath == selectedIndexPath){
return expandTips.expandedHeight
}else {
return expandTips.defaultHeight
}
}
Я новичок в ИОС. Надеюсь, это должна быть простая проблема. Пожалуйста, помогите мне решить эту проблему.
Я не знаю, какие детали нужно размещать здесь. Прошу прокомментировать, если я хочу добавить более подробную информацию.
Я почти полностью уверен, что этот код из моего видео на YouTube, так что я буду идти вперед и ссылку на него здесь (https: // WWW .youtube.com/смотреть? v = VWgr_wNtGPM). Это исправление для де-регистра KVO фактически было уже сделано в репозитории (https://github.com/rcdilorenzo/Cell-Expander). –
Да, именно я следую этому проекту GitHub. Этот вопрос уже зарегистрирован @mattiaskronberg. Я нашел решение из этой ссылки в Pastebin. http://pastebin.com/VaRmuYfU – Amsheer