iOS5.1 をサポートするように構築された iOS アプリケーションがあり、検索バー内のキャンセル ボタンをカスタマイズしていました。
私が使用していて、iOS6.1 まで動作するコードは次のとおりです。
id barButtonAppearanceInSearchBar =
[UIBarButtonItem appearanceWhenContainedIn: [UISearchBar class], nil];
[barButtonAppearanceInSearchBar setTitle:
[self localizedStringValueFor:@"Cancel"]];
どういうわけか、2行目で不正なアクセス例外が発生barButtonAppearanceInSearchBar
し、ボタンのテキストの値を設定しようとすると割り当てが解除されるようです。
localizedStringForValue
指定されたキーの翻訳を含む文字列を返すカスタム メソッド、または翻訳が存在しない場合はキー自体を返すカスタム メソッドです。
iOS7 のシミュレーターでアプリを実行すると、アプリは常にクラッシュします。私が間違っていることを理解しようとしていますが、これまでのところ運がありません。