我正在尝试将简单的GMSPlacePicker示例转换为Swift
但是Picker会出现,但是一旦从Right到Left的转换完成,它就会立即消失。
// ViewController.swift
import UIKit
import CoreLocation
import GoogleMaps
class ViewController: UIViewController {
@IBAction func buttonPlacesPicker_TouchUpInside(sender: AnyObject) {
//-----------------------------------------------------------------------------------
var southWestSydney : CLLocationCoordinate2D = CLLocationCoordinate2DMake(-33.8659, 151.1953)
var northEastSydney : CLLocationCoordinate2D = CLLocationCoordinate2DMake(-33.8645, 151.1969)
var sydneyBounds : GMSCoordinateBounds = GMSCoordinateBounds(coordinate: southWestSydney, coordinate:northEastSydney)
//var config : GMSPlacePickerConfig = GMSPlacePickerConfig(viewport:sydneyBounds)
var config : GMSPlacePickerConfig = GMSPlacePickerConfig(viewport:nil)
//---------------------------------------------------------------------
var placePicker : GMSPlacePicker = GMSPlacePicker(config: config)
//typealias GMSPlaceResultCallback = (GMSPlace?, NSError?) -> Void
var error: NSError? = nil
var gmsPlace: GMSPlace? = nil
placePicker.pickPlaceWithCallback(){
(gmsPlace, error) -> Void in
if let error = error{
println("error:\(error)")
}else{
if let gmsPlace = gmsPlace{
if let formattedAddress = gmsPlace.formattedAddress{
println("formattedAddress:\r\(formattedAddress)")
}else{
println("gmsPlace.formattedAddress is nil")
}
}else{
println("gmsPlace is nil")
}
println("info")
}
}
}
}
我的应用已成功要求地点
我有一个谷歌地图的桥接标题。
我没有使用可可豆荚来安装框架
但我之前在Obj-C中使用过框架
所以只需将GoogleMaps.framework拖到项目中即可 和内部资源包
我在之前的教程和链接器错误中添加了以下所有内容:
当我跑步时,我可以在采摘地图中看到悉尼。
它从屏幕右侧过渡到左侧。
当它到达左侧时消失
我添加了Reveal应用,但我无法看到选择器视图离线。
我的GMS服务api密钥是正确的,因为我在obj-c应用程序中使用它来显示地方选择器。
捆绑ID是正确的。
我的快速知识是“我想我知道。我可能不知道”
任何想法?
答案 0 :(得分:7)
您应该保留对GMSPlacePicker的引用。将它设为属性而不是局部变量。
答案 1 :(得分:0)
FIXED使它成为一个伊娃...... DOH!
class ViewController: UIViewController {
var placePicker : GMSPlacePicker?
@IBAction func buttonPlacesPicker_TouchUpInside(sender: AnyObject) {
self.placePicker?.pickPlaceWithCallback(){
...