Я не изобретаю велосипед. В iOS8, чтобы открыть настройки из приложения, я использую этот код:
BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL);
if (canOpenSettings)
{
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
}
Код находится во множестве ответов и вопросов в stackoverflow.
Проблема возникла с Xcode 6.3, у меня есть предупреждение:
Comparison of address of 'UIApplicationOpenSettingsURLString' not equal to a null pointer is always true
Интересно, что Apple использует его в своем примере кода:
https://developer.apple.com/library/ios/samplecode/AppPrefs/Listings/RootViewController_m.html
Некоторая идея о том, как избежать предупреждения и по-прежнему проверять, могу ли я открыть настройки?