На самом деле вам не нужно изменять прототип object
и добавлять туда функцию. Следующее должно хорошо работать для вашей цели.
var __next_objid=1;
function objectId(obj) {
if (obj==null) return null;
if (obj.__obj_id==null) obj.__obj_id=__next_objid++;
return obj.__obj_id;
}
Я добавил этот код для работы. я знаю, что это не настоящее решение, но пока работает.
tableView.scrollToRow(at: IndexPath(row: newsList.count - myPageSize, section: 0), at: .bottom, animated: false )
Я также искал эту проблему, и до сих пор я не нашел не жестко закодированное решение, но, по крайней мере, нашел следующее решение, которое отлично подходит для моих нужд (оно почти такое же, как у вас). ):
extension UITableView {
func reloadDataWithoutAnimation(scrollingAt desiredIndexPath: IndexPath, at desiredScrollPosition: UITableView.ScrollPosition) {
UIView.performWithoutAnimation {
reloadData()
scrollToRow(at: desiredIndexPath, at: desiredScrollPosition, animated: false)
}
}
}
let indexPath = IndexPath(row: desiredRow, section: desiredSection)
tableView.reloadDataWithoutAnimation(scrollingAt: indexPath, at: desiredScrollPosition)
Надеюсь, это поможет.