【发布时间】:2016-05-06 11:08:54
【问题描述】:
我在 google maps sdk 和 places api 上工作得很好。昨天我的代码运行得很好。但是今天早上醒来,做了一些修改,然后遇到了一堆问题,这似乎很容易解决,但花了几个小时试图弄清楚发生了什么。我正在尝试开发一个 iPhone 应用程序。
我已经回去了,在开发者控制台中创建了一个“新项目” 重新生成了一个新的 iOS 密钥。 在 info.plist 中输入了新的捆绑包 ID 在委托文件和 url 的搜索参数中输入了新的 api 密钥。
我正在使用 alamofire 和 swiftyjson 来解析数据
但仍然遇到同样的问题。
2016-01-28 13:15:55.683 Google Maps SDK for iOS 版本:1.11.21919.0
{ "error_message" : "此 IP、站点或移动应用程序无权使用此 API 密钥。从 IP 地址 "myIPAddress" 收到请求,引用者为空", “结果”:[
], “状态”:“REQUEST_DENIED”, “html_attributions”:[
] }
func downloadRestaurantDetails(completed: DownloadComplete) {
let URL_Search = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?"
let API_iOSKey = "My iOS API Key"
let urlString = "\(URL_Search)location=\(clLatitude),\(clLongitude)&radius=\(searchRadius)&types=\(searchType)&key=\(API_iOSKey)"
let url = NSURL(string: urlString)!
Alamofire.request(.GET,url).responseJSON { (response) -> Void in
if let value = response.result.value {
let json = JSON(value)
print(json)
if let results = json["results"].array {
for result in results {
if let placeIDs = result["place_id"].string {
self.placeIDArray.append(placeIDs)
}
}
}
}
completed()
}
}
【问题讨论】:
-
“昨天我的代码运行得非常好......做了一些修改然后遇到了问题的编译雪球” - 尝试将您的代码恢复到昨天的状态。您遇到的这些问题一定来自您所做的修改。
-
我从来不知道这个功能,谢谢,但我只是看看如何做到这一点,在 Xcode > 窗口 > 项目 > 悬停在我的项目上,没有可用的“快照” .这似乎很奇怪,因为我经常保存
-
定期保存不同于拍摄快照。对于此类情况,拍摄快照会在特定时间点保存您的项目。如果你定期拍摄快照,你可以恢复到以前的工作版本并从那里开始......
-
现在,我建议查看以前的 Time Machine 备份(您使用 Time Machine 对吗?)。从那里你可以从以前的日期复制有问题的文件的内容并使用它来恢复你的代码......
-
我没有让您轻松帮助您,抱歉 :( 但我不使用时间机器我没有任何类型的外部硬盘驱动器。我只是不明白我得到“空引用者”的错误。可能源于什么。我已经编码回修改之前的内容。所以它与 api 键有关。我 99% 确定我已经完成了我的工作假设为了获取 JSON 数据............ 1)在开发者控制台中创建一个新项目 2)创建 iOS API 密钥 3)确保包标识符匹配 4)将 iOS 密钥放在委托中并在 searchURL 的参数内
标签: ios swift google-maps debugging google-places-api