错误处理及状态改变的逻辑由KVO改为delegate