/ / Anular AppleLanguages ​​en NSUserDefaults - ios, nsuserdefaults

Anular AppleLanguages ​​en NSUserDefaults - ios, nsuserdefaults

Si anulo / altero los idiomas de Apple enNSUserDefaults, iOS ya no actualiza la lista cuando se cambia el idioma del sistema. Si no modifico la lista, el primer objeto de la matriz siempre será el idioma del sistema; sin embargo, si inserto un nuevo objeto en el índice 0 y luego cambio el idioma del sistema, iOS no colocará el nuevo idioma en la parte superior de la lista más ¿Hay alguna manera de modificar AppleLanguages ​​en NSUserDefaults y aún así el sistema actualiza la lista cuando cambia el idioma del sistema?

La solución de Accatyyc funciona excelente, aquí está la solución si está utilizando Swift:

  1. Cree un archivo main.swift, agregue la versión Swift del código en la respuesta aceptada:

    NSUserDefaults.standardUserDefaults().removeObjectForKey("AppleLanguages")
    UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate))
    
  2. Vaya a AppDelegate y elimine la siguiente línea:

    @UIApplicationMain //Removing this tells Xcode to use your main.swift file
    

Respuestas

4 para la respuesta № 1

¡Encontré una solución después de algunas pruebas y errores! La eliminación de toda la clave AppleLanguages ​​parece restaurarla a lo que el usuario ha configurado en la aplicación de configuración:

int main(int argc, char *argv[])
{
@autoreleasepool {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}