Error : Command failed due to signal : Segmentation fault: 11
Error : Command failed due to signal : Segmentation fault: 11
我正在尝试从字典中获取一个数组,但我收到以下行的错误
self.items = self.dataDictionary["geoNames"] as NSArray
完整代码如下
var dataDictionary: AnyObject!
var items: NSArray!
override func viewDidLoad() {
super.viewDidLoad()
var url = NSURL(string: "http://api.geonames.org/countryInfoJSON?username=temp")
var urlRequest = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(urlRequest, queue:NSOperationQueue(), completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
if (data.length > 0 && error == nil){
self.dataDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil)
println(self.dataDictionary)
self.items = self.dataDictionary["geoNames"] as NSArray
}
})
}
您的代码存在一些问题:
您的代码甚至无法编译。段错误来自编译器,而不是运行时
您应该将 JSONObjectWithData
的结果转换为
NSDictionary
,不赋值给AnyObject!
类型的变量
应该使用 if
检查转换是否有效
字典关键字错误。即geonames
(全部小写)
功能代码如下:
var url = NSURL(string: "http://api.geonames.org/countryInfoJSON?username=temp")
var urlRequest = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(urlRequest, queue:NSOperationQueue(), completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
if (data.length > 0 && error == nil){
if let jsonObject = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as? NSDictionary {
let dataDictionary = jsonObject["geonames"]
println(dataDictionary)
}
}
})
这发生在我身上是因为我错误地创建了一个 if 语句。非常非常简单的错误,我只是漏掉了一个键,却造成了天壤之别。:
if textBox?.characters.count = 0{
//...
}
相反,我需要做的是:
if textBox?.characters.count == 0{
//...
}
一个假设: 如果编辑器 - 由于某种原因 - 无法解析您的代码并对代码的正确性做出结论,它可能允许您编译甚至如果您有语法错误,这可能会导致您描述的错误。
由于语法错误,我收到了这个错误。也就是说,我正在将一维数组更改为二维数组,但忘记更新它初始化的一些地方。
编辑器似乎无法准确指出错误所在,当我尝试编译时,我得到了你描述的错误。我怀疑编辑器发生了一些奇怪的事情,因为它在全白和彩色语法之间闪烁,并在编辑器顶部抛出 "An internal error happened" 错误消息。
因此,如果您遇到此错误,请手动仔细检查您的代码或一项一项地撤消您的更改,直到您到达可以成功编译的阶段,这可能会给您提示哪里出了问题。
发帖是因为它可能对面临类似问题的人有所帮助。
我在安装 cocoapod 时遇到了同样的错误,并注意到我的 Foundation.framework 不再被识别。看看我在这里 on this thread 的回答,它解决了我的问题。希望这对某人有帮助。
如果您不想访问 link,只需 运行
sudo gem install cocoapods
如果您怀疑过时的 cocoa pods 给您的框架带来麻烦,请更新 pods
我正在尝试从字典中获取一个数组,但我收到以下行的错误
self.items = self.dataDictionary["geoNames"] as NSArray
完整代码如下
var dataDictionary: AnyObject!
var items: NSArray!
override func viewDidLoad() {
super.viewDidLoad()
var url = NSURL(string: "http://api.geonames.org/countryInfoJSON?username=temp")
var urlRequest = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(urlRequest, queue:NSOperationQueue(), completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
if (data.length > 0 && error == nil){
self.dataDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil)
println(self.dataDictionary)
self.items = self.dataDictionary["geoNames"] as NSArray
}
})
}
您的代码存在一些问题:
您的代码甚至无法编译。段错误来自编译器,而不是运行时
您应该将
JSONObjectWithData
的结果转换为NSDictionary
,不赋值给AnyObject!
类型的变量
应该使用
if
检查转换是否有效字典关键字错误。即
geonames
(全部小写)
功能代码如下:
var url = NSURL(string: "http://api.geonames.org/countryInfoJSON?username=temp")
var urlRequest = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(urlRequest, queue:NSOperationQueue(), completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
if (data.length > 0 && error == nil){
if let jsonObject = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as? NSDictionary {
let dataDictionary = jsonObject["geonames"]
println(dataDictionary)
}
}
})
这发生在我身上是因为我错误地创建了一个 if 语句。非常非常简单的错误,我只是漏掉了一个键,却造成了天壤之别。:
if textBox?.characters.count = 0{
//...
}
相反,我需要做的是:
if textBox?.characters.count == 0{
//...
}
一个假设: 如果编辑器 - 由于某种原因 - 无法解析您的代码并对代码的正确性做出结论,它可能允许您编译甚至如果您有语法错误,这可能会导致您描述的错误。
由于语法错误,我收到了这个错误。也就是说,我正在将一维数组更改为二维数组,但忘记更新它初始化的一些地方。
编辑器似乎无法准确指出错误所在,当我尝试编译时,我得到了你描述的错误。我怀疑编辑器发生了一些奇怪的事情,因为它在全白和彩色语法之间闪烁,并在编辑器顶部抛出 "An internal error happened" 错误消息。
因此,如果您遇到此错误,请手动仔细检查您的代码或一项一项地撤消您的更改,直到您到达可以成功编译的阶段,这可能会给您提示哪里出了问题。
发帖是因为它可能对面临类似问题的人有所帮助。
我在安装 cocoapod 时遇到了同样的错误,并注意到我的 Foundation.framework 不再被识别。看看我在这里 on this thread 的回答,它解决了我的问题。希望这对某人有帮助。
如果您不想访问 link,只需 运行
sudo gem install cocoapods
如果您怀疑过时的 cocoa pods 给您的框架带来麻烦,请更新 pods