Posible manera de detectar la detección de tarjetas SIM en iOS?

Tengo una aplicación para iPhone que tiene la capacidad de enviar mensajes. Quiero alertar al usuario cuando la tarjeta SIM no está disponible en el iPhone. Así que intenté debajo de tres funciones para verificar la disponibilidad de la tarjeta SIM

Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
if([messageClass canSendText]){
    // Sim available
    NSLog(@"Sim available");
}
else{
    //Sim not available
    NSLog(@"Sim not available");
}

if([MFMessageComposeViewController canSendText]){
    // Sim available
    NSLog(@"Sim available");
}
else{
    //Sim not available
    NSLog(@"Sim not available");
}

if([[UIDevice currentDevice].model isEqualToString:@"iPhone"])
{
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:123456"]])
    {
        NSLog(@"Sim available");
    }
    else
    {
        NSLog(@"Sim not available");
    }
}

He revisado mi iPhone sin sim, siempre devuelve @ "Sim disponible". Pero cuando abro la aplicación de "Mensajes" predeterminada y trato de enviar sms, dice alerta "No hay tarjeta SIM instalada" ... ¿Cómo esta aplicación de mensajes puede detectar la disponibilidad de la tarjeta SIM?

Respuestas a la pregunta(5)

Su respuesta a la pregunta