我正在尝试从字典中获取一个数组,但是我在下面的行中收到错误
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
}
})
}
答案 0 :(得分:2)
假设:如果编辑器 - 由于某种原因 - 无法解析代码并对代码的正确性做出结论,即使您有语法错误,也可能允许编译,这可能会导致您描述的错误。
由于语法错误,我收到此错误。也就是说,我正在将一维数组更改为二维数组,但忘记更新它初始化的一些位置。
似乎编辑无法确切地指出错误的位置,当我尝试编译时,我得到了您描述的错误。我怀疑编辑器正在进行一些时髦的事情,因为它在全白和彩色语法之间闪烁,然后抛出"发生内部错误"编辑器顶部的错误消息。
因此,如果您遇到此错误,请手动仔细检查您的代码或逐个撤消更改,直到您进入可以成功编译的阶段,这可能会给您一些错误的提示。
发布,因为它可能对面临类似问题的人有所帮助。
答案 1 :(得分:2)
我在cocoapod安装时遇到了同样的错误,并注意到我的Foundation.framework停止被识别。看看我的回答on this thread,它解决了我的问题。希望这有助于某人。
如果您不想访问该链接,只需运行
即可XSSFRichTextString richString = new XSSFRichTextString();
richString.append("azerty");
richString.append("test", highlightFont);
richString.append("qwerty");
cell.setCellValue(richString);
如果您怀疑过时的可可豆荚给您带来框架问题,请更新豆荚
答案 2 :(得分:1)
您的代码存在一些问题:
您的代码甚至无法编译。 Segfault来自编译器,而非运行时
您应该将结果从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)
}
}
})
答案 3 :(得分:0)
这发生在我身上,因为我不情愿地创建了一个if语句。非常非常简单的错误,我错过了一个关键,但造成了一个世界的差异。:
if textBox?.characters.count = 0{
//...
}
我需要这样做:
if textBox?.characters.count == 0{
//...
}