2017-09-28 67 views
1

我嘗試了GMSPlacesClient,但無法以正確格式在tableView中填充結果。獲取GoogleApi搜索的位置以填寫表格

之後,我用Fetcher,但我幫不了我。

extension SearchViewController: GMSAutocompleteFetcherDelegate { 
func didAutocomplete(with predictions: [GMSAutocompletePrediction]) { 
    let resultsStr = NSMutableString() 
    for prediction in predictions { 
     resultsStr.appendFormat("%@\n", prediction.attributedPrimaryText) 
    } 

    print(resultsStr as String) 
} 

func didFailAutocompleteWithError(_ error: Error) { 
    print(error.localizedDescription) 
} 

} 

我不知道我是否不明白它的用法。有人可能會描述我如何使用Google Places API在textBox中搜索地址,然後在tableView中顯示結果。

我的問題是獲取搜索結果?


獲取部分代碼:

var fetcher: GMSAutocompleteFetcher? 

func placeAutocomplete(add:String) { 
    fetcher?.sourceTextHasChanged(add) 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    tblView.delegate = self 
    tblView.dataSource = self 


    let filter = GMSAutocompleteFilter() 
    filter.type = .establishment 

    // Create the fetcher. 
    fetcher = GMSAutocompleteFetcher(bounds: nil, filter: filter) 
    fetcher?.delegate = self 
} 

結果搜索 「墨西哥」

> Me{ 
GMSAutocompleteMatch = "<GMSAutocompleteMatchFragment: 0x60800043db60>"; 
}rcado de La Boqueria, La Rambla, Barcelona, Spain{ 
}* 
Me{ 
    GMSAutocompleteMatch = "<GMSAutocompleteMatchFragment: 
    0x60800043db60>"; 
}rcado San Anton, Calle de Augusto Figueroa, Madrid, Spain{ 
}* 
    Me{ 
GMSAutocompleteMatch = "<GMSAutocompleteMatchFragment: 0x60800043db60>"; 
}nlyn Mall, Atterbury Road, Pretoria, South Africa{ 
}* 
    Me{ 
    GMSAutocompleteMatch = "<GMSAutocompleteMatchFragment: 
    0x60800043db60>"; 
}ga Mall, Bulevardul Pierre de Coubertin, Bucharest, Romania{ 
    }* 
     Me{ 
    GMSAutocompleteMatch = "<GMSAutocompleteMatchFragment: 
    0x60800043db60>"; 
    }rcado de San Ildefonso, Calle de Fuencarral, Madrid, Spain{ 
    }* 

打印代碼:

for q in predictions1 
{ 
    print ("\(q.attributedFullText)*") 
} 
+0

問題:1,你知道如何充分利用'UITableView'? 2.你知道如何從任何API獲取數據,比如使用Postman來測試API嗎? 3.您是否嘗試瞭解Google的API文檔?我是一個不喜歡閱讀的人,但Google的文檔很容易理解,寫得很好。 – Glenn

+0

是的,我知道如何使用UITableView並從API中獲取數據/他們不是我的問題。問題是,我不能使用提取程序的結果,這不是關係到我的搜索 –

回答

1

英語新HOULD使用陣列結果的代替讓resultsStr =的NSMutableString()

並填充表視圖與數據源作爲陣列

+0

讓我有一些代碼片斷如果u前 –

+0

VAR的結果= [GMSAutocompletePrediction]()//陣列 self.results =預測//做預測從FUNC didAutocomplete結果(預測: 現在你可以從顯示效果陣列 – Sandy

+0

數據爲什麼結果不與我的搜索詞 –

0

您需要使用GMSAutocompleteFilter濾波器來調整以獲得期望的結果。目前,您正在使用過濾器類型篩選結果:.establishment,它過濾/限制搜索結果。您可以考慮使用.noFilter或任何其他過濾器。

let filter = GMSAutocompleteFilter() 
filter.type = .noFilter 

參考enum GMSPlacesAutocompleteTypeFilter,來源:​​

public enum GMSPlacesAutocompleteTypeFilter : Int { 


    /** 
    * All results. 
    */ 
    case noFilter 

    /** 
    * Geeocoding results, as opposed to business results. 
    */ 
    case geocode 

    /** 
    * Geocoding results with a precise address. 
    */ 
    case address 

    /** 
    * Business results. 
    */ 
    case establishment 

    /** 
    * Results that match the following types: 
    * "locality", 
    * "sublocality" 
    * "postal_code", 
    * "country", 
    * "administrative_area_level_1", 
    * "administrative_area_level_2" 
    */ 
    case region 

    /** 
    * Results that match the following types: 
    * "locality", 
    * "administrative_area_level_3" 
    */ 
    case city 
}