sostenible soluciones para naturaleza gestión europa desarrollo basadas agua ios swift swift2 realm

ios - para - Swift-''sharedApplication no está disponible''. Utilice las soluciones basadas en el controlador de visualización donde corresponda



soluciones de la naturaleza (2)

Estoy abriendo una URL externa en mi aplicación Swift usando la línea:

UIApplication.sharedApplication().openURL(url)

Esto funcionaba bien hasta que agregué Realm a mi proyecto a través de CocoaPods. En ese punto, comenzó a darme los dos errores de compilación a continuación:

''sharedApplication ()'' no está disponible: use soluciones basadas en controlador de vista donde corresponda.

''openURL'' no está disponible

Estos errores indican que la API no está disponible para Extensiones de aplicación, pero mi código está en una aplicación normal, no en una extensión. ¿Por qué añadir Realm dará como resultado que el compilador piense que está en una extensión de aplicación?


Este es un problema que puede ocurrir al agregar Realm a un proyecto que está usando una versión de CocoaPods anterior a la v0.39. Para solucionarlo, actualice a la última versión de CocoaPods usando:

sudo gem install cocoapods

Este problema se debe a CocoaPods issue # 3906 , que da como resultado partes de la configuración de Realm que se aplica a los objetivos de su aplicación. Una de las configuraciones habilitadas por Realm es "Permitir API de extensión de aplicaciones solamente", que es la razón por la que termina viendo este error en particular.


No puede usar sharedApplication desde una extensión de aplicación.

Pero tenga en cuenta que la documentación de la manzana dice:

IMPORTANTE

Apple permite que cualquier widget de Today use el método openURL: completionHandler: para abrir la aplicación que contiene el widget.

ExtensionOverview.