3

usineでios6でマップを開きたいのですMKMapItemが、古いiosバージョンのgoogleマップを使用してフォールバックしたいのですが...

私はBubbleWrapの原因なしでrubymtionでこれを行うためのアイデアがありませDevice.ios_versionん私にエラーを返します

私はこれをiOS6でやりたいです:

address_dictionnary = ({kABPersonAddressStreetKey: @party.place.street, kABPersonAddressCityKey: @party.place.city,kABPersonAddressZIPKey: @party.place.postal_code})
place = MKPlacemark.alloc.initWithCoordinate(@coords, addressDictionary: address_dictionnary)
mapItem = MKMapItem.alloc.initWithPlacemark(place)
mapItem.name = "#{@party.name}"
options = ({
   MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving
})
mapItem.openInMapsWithLaunchOptions(options)

そしてこれは古いバージョンでは:

url = "http://maps.google.com/maps?saddr=#{@party.place.location[1]},#{@party.place.location[0]}&daddr=#{@party.place.location[1]},#{@party.place.location[0]}"
App::open_url(url)

ご協力いただきありがとうございます


そして、正しいテストを実行すると:テストを実行してIOS 5.1で実行すると、このエラーが発生します

dyld: Symbol not found: _MKLaunchOptionsDirectionsModeDriving

これは私のコードです:

if Utils.older_than_ios6?
  url = "http://maps.google.com/maps?saddr=#{@party.place.location[1]},#{@party.place.location[0]}&daddr=#{@party.place.location[1]},#{@party.place.location[0]}"
  App::open_url(url)
else
  address_dictionnary = ({kABPersonAddressStreetKey: @party.place.street, kABPersonAddressCityKey: @party.place.city,kABPersonAddressZIPKey: @party.place.postal_code})
  place = MKPlacemark.alloc.initWithCoordinate(@coords, addressDictionary: address_dictionnary)
  mapItem = MKMapItem.alloc.initWithPlacemark(place)
  mapItem.name = "#{@party.name}"
  options = ({
     MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving
  })
  mapItem.openInMapsWithLaunchOptions(options)
end
4

1 に答える 1

5

のソースを確認するとDevice.ios_version、 が返されることがわかりますUIDevice.currentDevice.systemVersion。したがって、これでうまくいくはずです。

于 2012-10-05T13:49:26.337 に答える