Observerパターンを使用するのは初めてです。iOS7 以前のバージョンでアプリケーションを正常に実行しています。
XCode 6 を使用してアプリケーションを iOS8 にアップグレードしました。アプリケーションを XCode 6 で初めて開いて実行すると、エラー メッセージが表示されずにアプリケーションがクラッシュします。
デバッガと例外ブレークポイントを適用してみました。
私が見つけたのは、アプリケーションがaddObserver:
行コードでクラッシュしていることです。私がやっていることは次のとおりです。
- 私のアプリケーションは最初にログイン画面を開き、
- ユーザーはユーザー名とパスワードを入力する必要があります。
- 新しいユーザーがログインすると、ユーザー名とパスワードがデータベースに保存されます。
- 内部ユーザーには、パスワードを更新して DB に保存するオプションがあります。
ユーザーが 2 回目にログインしたときに、オブザーバーがパスワードの変更をキャッチしていません。
同じコード行は、下位バージョンで正常に動作します。私は何か間違ったことをしていますか?私のコード:
SqlLiteUser *userObj =(SqlLiteUser*)[objDAOFactory getUserDAO];
[userDAO addObserver:self forKeyPath:@"sendPasswordStatus" options:(NSKeyValueObservingOptionNew) context:@selector(handleSendPasswordResult:)];
[userDAO addObserver:self forKeyPath:@"noConnection" options:(NSKeyValueObservingOptionNew) context:@selector(noConnection)];