2011-11-04 133 views
9

我剛剛更新到XCode 4.2,我看到一個很酷的功能,允許我手動設置設備位置。有沒有人知道一種方式來以編程方式完成相同的事情?我想在一些單元測試中設置位置。以編程方式設置iphone模擬器位置

+0

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

+1

我不認爲這有幫助。它的意思是覆蓋CLLocationManager的回調。但是我看到的問題是,在我的單元測試中,回調根本不是。我希望有這樣的事情:[NSApplication setLatitude:lat longitude:lng] – JonnyBoy

+0

所以@JonnyBoy你知道嗎?我也很樂意使用這個! – abbood

回答

9

下面的AppleScript將允許您設置iOS模擬器的位置。應該可以將這種腳本集成到單元測試腳本中,或讓您的腳本生成等效的AppleEvents。

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

聽起來不錯。我不再和ios一起工作,但我會把這個給你,因爲它看起來像我所要求的。也許別人可以驗證? – JonnyBoy

2

您可以使用預處理器條件包含;檢查TARGET_IPHONE_SIMULATOR這樣的宏:

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

我想我不夠清楚。我正在尋找一種方式讓CLLocationManager實例發送一個http://developer.apple.com/library/ios/DOCUMENTATION/CoreLocation/Reference/CLLocationManagerDelegate_Protocol/CLLocationManagerDelegate/CLLocationManagerDelegate.html#//apple_ref/occ/intfm/ CLLocationManagerDelegate/locationManager:didUpdateToLocation:fromLocation:就像它通過在iphone模擬器上點擊Debug-> Location-> Custom Location。這看起來像它所做的就是設置一個浮點數。 – JonnyBoy

相關問題