2013年12月17日火曜日

ABPeoplePickerNavigationController を使った際の Crash

XCode 5 で iOS 7 向けのアプリを作成している。
ずいぶんと長い間 Xcodeにも触っていなかったが、昔と違い、情報も豊富で色々とサンプルも見つかるので、結構はかどる。
だが、やっぱりつまるところはあるもので、数日間対応に悩んでいた。

問題は、NavigationController を使っている場合で、遷移先で ABPeoplePickerNavigationController を使用してアドレス帳を表示すると、別な画面に戻った際に、Crashすること。アドレス帳からなにかを選択しなくても落ちる。
いろんなサイトでみつけたサンプル通りにやってみるが上手くいかず、独自に色々試しても上手くいかず。

たまたま、stackoverflow で検索してみると以下のページが見つかった。


ios - App crash on use of PeoplePicker, but not in same view - Stack Overflow
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
    [self dismissViewControllerAnimated:YES completion:nil];
    CFRetain((__bridge CFTypeRef)(peoplePicker));
}

知ってみると、大したこと無く思えることだが、見つからなかったらまだまだ悩み続けていただろう。