Asıl soru, onu gözlemleyip gözlemlemediğinizi neden bilmediğinizdir.
Bunu gözlenen nesnenin sınıfında yapıyorsanız, durun. Ne gözlemliyorsa onu izlemeye devam etmeyi umuyor. Gözlemcinin bildirimlerini bilgisi olmadan keserseniz, işlerin kırılmasını bekleyin; daha spesifik olarak, daha önce gözlemlenen nesneden güncelleme almadığı için gözlemcinin durumunun bayatlamasını bekleyin.
Bunu gözlem nesnesinin sınıfında yapıyorsanız, hangi nesneleri gözlemlediğinizi hatırlayın (ya da yalnızca bir nesneyi gözlemlerseniz, gözlemleyip gözlemlemediğinizi). Bu, gözlemin dinamik olduğunu ve birbiriyle alakasız iki nesne arasında olduğunu varsayar; gözlemci gözlenene sahipse, gözlemleneni oluşturduktan veya koruduktan sonra gözlemciyi ekleyin ve gözlemleneni serbest bırakmadan önce gözlemciyi çıkarın.
Bir nesneyi gözlemci olarak eklemek ve kaldırmak genellikle gözlemci sınıfında olmalı ve asla gözlemlenen nesnede olmamalıdır.
addObserver:
içindeviewWillAppear:
ve bunaremoveObserver:
yılındaviewWillDisappear:
, aramalar doğru eşleştirilmiş. Hızlı bir düzeltme yapmak zorundayım, bu yüzden try-catch çözümünü uygulayacağım ve sebebini daha fazla araştırmak için bir yorum bırakacağım.