我正在使用Google Places
API搜索附近的地方。但是,我只想要特定类型的地方。当我仅指定一种类型时,代码(如下所示)有效,但是当我添加第二种代码时,我的代码运行并迅速在此行上给我一个EXC_BAD_INSTRUCTION(code
= EXC_I386_INVOP,subcode = 0x0)错误:
我知道网址有效。我可以将其插入浏览器并查看json,所以我不明白问题是什么。
func search(location : CLLocationCoordinate2D, radius : Int, callback : (items : [Attraction]?, errorDescription : String?) -> Void) {
var urlString = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=37.7873589,-122.408227&radius=4000&types=aquarium|art_gallery&key=YOURKEY"
var url = NSURL(string: urlString)
var session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
session.dataTaskWithURL(url!, completionHandler: { (data : NSData!, response : NSURLResponse!, error : NSError!) -> Void in
if error != nil {
callback(items: nil, errorDescription: error.localizedDescription)
}
if let statusCode = response as? NSHTTPURLResponse {
if statusCode.statusCode != 200 {
callback(items: nil, errorDescription: "Could not continue. HTTP Status Code was \(statusCode)")
}
}
NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in
callback(items: GooglePlaces.parseFromData(data), errorDescription: nil)
})
}).resume()
}
class func parseFromData(data : NSData) -> [Attraction] {
var attractions = [Attraction]()
var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
var results = json["results"] as? [NSDictionary]
for result in results! {
var placeId = result["place_id"] as String
var image = result["icon"] as String
var name = result["name"] as String
var ratingString = ""
var types = result["types"] as [String]
println(types)
if result["rating"] != nil {
var rating = result["rating"] as Double
ratingString = "\(rating)"
}
var coordinate : CLLocationCoordinate2D!
if let geometry = result["geometry"] as? NSDictionary {
if let location = geometry["location"] as? NSDictionary {
var lat = location["lat"] as CLLocationDegrees
var long = location["lng"] as CLLocationDegrees
coordinate = CLLocationCoordinate2D(latitude: lat, longitude: long)
var placemark = MKPlacemark(coordinate: coordinate, addressDictionary: nil)
var attraction = Attraction(id: placeId, imageUrl: "image url", locationName: name, ratingAvg: "\(ratingString)", types: types, placemarker: placemark)
attractions.append(attraction)
}
}
}
return attractions
}
我知道网址有效
网址是 不是 有效。您 不 知道自己以为所知道的。监听运行时。它比您了解的更多。
只需单独尝试以下代码(例如,在操场上):
var urlString = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=37.7873589,-122.408227&radius=4000&types=aquarium|art_gallery&key=YOURKEY"
let url = NSURL(string:urlString)
url
是零。那就是你的问题。您不能强行打开nil
;如果这样做,您将崩溃。
确认这一点后,您可以开始考虑 为什么 URL无效。(很明显为什么会这样。)学会相信编译器和运行时是成功编程的 关键 。
提示:这样 形成您的URL,一切都很好:
let url2 = NSURL(scheme: "https", host: "maps.googleapis.com", path: "/maps/api/place/nearbysearch/json?location=37.7873589,-122.408227&radius=4000&types=aquarium|art_gallery&key=YOURKEY")
你为什么这么认为呢?查看文档,看看此初始化程序可以为您做什么…
遵循良好的代码规范是很有必要的。随着业务的发展,项目的持续集成,代码的复杂性会变得越来越高。在业务逻辑变得越来越复杂的时候,如果没有统一的规范进行约束,代码的可阅读性会越来越差,这样拓展和维护都将会变得非常棘手。遵守代码规范,能够让多人开发维护的项目代码风格保持统一,提高可阅读性,同时也能够在编码过程中规避掉一些低级错误和需要避开的坑,降低出错概率。 百度前端编码规范 百度提供了一套包括 Java
问题内容: 我们正在与节点合作,主要用于内部项目,并了解使用该技术的最佳方法。 并非来自特定的异步背景,学习曲线可能是一个挑战,但是我们已经习惯了框架和学习过程。 使我们两极分化的是,何时才是使用同步代码与异步代码的最佳时间。我们目前使用的规则是,如果任何东西与IO进行交互,那么它必须通过回调或事件发射器(即给定的)是异步的,但是可以将任何未使用IO的其他项构造为同步函数(此方法还将取决于函数本身
问题内容: 在iOS7设备上运行我的应用时,出现了EXC_BREAKPOINT(EXC_ARM_BREAKPOINT,子代码= 0xe7ffdefe)错误。事实是,它可以在iOS7模拟器上流畅运行。 通过使用断点,我发现错误发生在第6行。 这个错误是新的,并且直到我将这些行添加到代码中之后,该错误才出现在我的设备上。 也; 调试器将错误指向此行: 并在控制台中提供以下输出: 致命错误:尝试从空指针
我已经被这段代码困扰了一段时间,非常感谢您的帮助。因此,基本上我的刽子手代码运行良好,但控制台中的显示,破折号应该反映哪些字母猜对了,哪些字母仍然需要猜对,这是完全错误的。我将在这里发布我的代码。由于时间很长,我将只发布相关的方法。我觉得问题似乎出在显示数组列表上,我无法持续更新它。
下面是WebPack4配置代码: 新的配置代码从项目中使用的节点模块中获取所有代码。但我只希望拆分供应商库(我在enrtry配置部分定义),而不希望拆分node_modules中的所有代码。 在本例中:“babel-polyfill”,“react”,“react-dom”,“jquery”,“bootstrap”
本文向大家介绍php base64 编码与解码实例代码,包括了php base64 编码与解码实例代码的使用技巧和注意事项,需要的朋友参考一下 php base64 编码与解码详解 1.自定义规则方式编码和解码 实例 2.利用系统函数完成base64位的编码和解码 实例代码: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!