Mi aplicación de iPhone está utilizando la clase MFMailComposeViewController para enviar un correo electrónico integrado en la aplicación con un archivo adjunto. La aplicación solo intentará mostrar el diálogo de compositor de correo si el método "canSendMail" de la clase MFMailComposeViewController devuelve verdadero (YES). En concreto, si el siguiente método devuelve SÍ, se muestra el editor de correo, de lo contrario el usuario se presenta con indicando un diálogo de alerta de error que no hay cuentas de correo electrónico configuradas en el dispositivo:Cuándo [MFMailComposeViewController canSendMail] devolverá NO
- (BOOL)canDeviceSendEmail
{
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
return mailClass != nil && [mailClass canSendMail];
}
Un equipo de probadores tienen informaron que reciben este diálogo de alerta de error, incluso cuando las cuentas de correo electrónico están configuradas en el dispositivo. El probador usó un iPhone 3G con OS 3.1.3. Por lo tanto, la clase MFMailComposeViewController debe haber existido y el método "canSendMail" debe haber devuelto NO.
Mi pregunta es por lo tanto: aparte del caso cuando no hay cuentas de correo electrónico configuradas en el dispositivo, ¿en qué otras circunstancias puede el método "canSendMail" devolver NO?
~ Gracias
Gracias por eso. La aplicación se creó con base SDK 3.1.2 y el objetivo de implementación del iPhone OS es iPhone OS 3.0 – pythonquick
Aha. Esta técnica de establecer el destino de implementación del iPhone OS por separado del SDK base y verificar en tiempo de ejecución las clases es algo nuevo para mí. Muy genial. – Tom