2011-11-04 13 views
9

Acabo de actualizar a XCode 4.2 y veo una característica interesante que me permite configurar manualmente la ubicación del dispositivo. ¿Alguien sabe de una manera de lograr lo mismo programáticamente? Me gustaría establecer la ubicación en algunas pruebas unitarias.Programando la ubicación del simulador de iphone

+0

http://stackoverflow.com/questions/214416/set-the-location-in-iphone-simulator –

+1

no creo que eso ayuda. Lo que está diciendo es anular la devolución de llamada de CLLocationManager. Pero el problema que estoy viendo es que en mis pruebas unitarias, la devolución de llamada no llega para nada. Esperaba que hubiera algo así como: [NSApplication setLatitude: lat longitude: lng] – JonnyBoy

+0

así que @JonnyBoy ¿te diste cuenta de esto? ¡me encantaría usar esto también! – abbood

Respuesta

9

El siguiente AppleScript le permitirá configurar la ubicación del simulador de iOS. Debería ser posible integrar este tipo de script en un script de prueba unitario, o hacer que su script genere los AppleEvents equivalentes.

tell application "iOS Simulator" 
    activate 
end tell 

tell application "System Events" 
    tell process "iOS Simulator" 
     tell menu bar 1 
      tell menu bar item "Debug" 
       tell menu "Debug" 
        tell menu item "Location" 
         click 
         tell menu "Location" 
          click menu item "Custom Location…" 
         end tell 
        end tell 
       end tell 
      end tell 
     end tell 

     tell window 1 
      set value of text field 1 to "40.69" 
      set value of text field 2 to "-74.045" 
      click button "OK" 
     end tell 

    end tell 
end tell 
+0

Suena bien. Ya no trabajo con iOS, pero te daré este porque parece que hace lo que estaba pidiendo. Tal vez alguien más puede verificar? – JonnyBoy

2

Puede usar la inclusión condicional del preprocesador; comprobar la macro TARGET_IPHONE_SIMULATOR así:

#if TARGET_IPHONE_SIMULATOR 
    float longitude = 39.1234; 
    // etc  
#else 
    float longitude = myLocationManager.longitude 
#endif 
+2

Supongo que no fui lo suficientemente claro. Estoy buscando una forma para que una instancia de CLLocationManager envíe un http://developer.apple.com/library/ios/DOCUMENTATION/CoreLocation/Reference/CLLocationManagerDelegate_Protocol/CLLocationManagerDelegate/CLLocationManagerDelegate.html#//apple_ref/occ/intfm/ CLLocationManagerDelegate/locationManager: didUpdateToLocation: fromLocation: como lo haría haciendo clic en Depurar-> Ubicación-> Ubicación personalizada en el simulador de iphone. Esto parece que todo lo que hace es establecer un flotador. – JonnyBoy

Cuestiones relacionadas