ARC entfernt den Observer nicht. Jeder Observer der erstellt wird, muss an geeigneter Stelle wieder entfernt werden.
Wenn Du einen Observer in "init" oder "viewDidLoad" erstellst, musst Du "dealloc" überschreiben und dort den Observer mit "removeObserver" wieder deaktivieren. Im überschiebenen "dealloc" darfst wegen ARC aber keinesfalls "super.dealloc" aufrufen. Sonst kracht es.
Habe gerade meine App entsprechend geändert. Paar andere Verbesserungen sind ebenfalls schon drin, es wird langsam Zeit für ein Update. Und wieder zwei Wochen "waiting for review"...
Kann mir jemand mit einem Beispiel zeigen, wie ich einen Observer unter Delphi erstelle?