swift - NSInternalInconsistencyException observer contentSize -


getting error

2017-07-28 20:17:34.636 app[78013:1799389] *** terminating app due uncaught exception 'nsinternalinconsistencyexception', reason: 'an instance 0x7fa97b0bf400 of class app.messagescelltextview deallocated while key value observers still registered it. current observation info: <nskeyvalueobservationinfo 0x618000434e80> ( <nskeyvalueobservance 0x618000243c60: observer: 0x7fa97b0bf400, key path: contentsize, options: <new: yes, old: no, prior: no> context: 0x0, property: 0x618000243c90> 

when leave chat controller , go back.

this code contentsize

var observeradded: bool = false  override func awakefromnib() {     super.awakefromnib()      self.addobserver(self, forkeypath:"contentsize", options:.new, context:nil)     observeradded = true    }  deinit {     if (observeradded) {         observeradded = false         self.removeobserver(self, forkeypath: "contentsize")     } }   override func observevalue(forkeypath keypath: string?, of object: any?, change: [nskeyvaluechangekey : any]?, context: unsafemutablerawpointer?) {     if let textview = object as? uitextview {          var y: cgfloat = (textview.bounds.size.height - textview.contentsize.height * textview.zoomscale) / 2.0         y = (y < 0.0 ? 0.0 : y)          textview.contentoffset = cgpoint(x: 0, y: -y)      } } 

weird thing is, tried removing of these code still same error, what!!.

check flag if observer not added inside awakefromnib method add accordingly:-

override func awakefromnib() {     super.awakefromnib()    if !observeradded {      self.addobserver(self, forkeypath:"contentsize", options:.new, context:nil)      observeradded = true   } } 

Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -