Swift中的parser.parse()导致EXC_BAD_ACCESS [英] parser.parse() in Swift leads to EXC_BAD_ACCESS

查看:109
本文介绍了Swift中的parser.parse()导致EXC_BAD_ACCESS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在关注本教程,作为我正在开发的RSS支线应用的快速入门在斯威夫特。我知道自本教程以来Swift中有一些变化,但它们似乎都没有解释为什么我遇到这个问题。

I'm following this tutorial as a jump start for an RSS feeder app I'm working on in Swift. I know there are some things that have changed in Swift since this tutorial, but none of them seem to explain why I'm having this issue.

相关代码(目前为止)我可以告诉)在我的TableViewController中如下所示:

Relevant Code (as far as I can tell) is as follows in my TableViewController:

 override func viewDidLoad() {
    super.viewDidLoad()

    let url:NSURL = NSURL(string: "my.url.string")
    parser = NSXMLParser(contentsOfURL: url)
    parser.delegate = self
    parser.parse() // <- Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

}

实际的解析器委托方法似乎没有问题,因为我在它们上面放置了断点,甚至在崩溃之前它们都没有被调用。

There doesn't seem to be a problem with the actual parser delegate methods as I put breakpoints on them and they aren't even being called before the crash.

我的假设是它是一个Swift错误,但我想确保在我向苹果抱怨之前我没有遗漏一些东西。

My assumption is that it's a Swift bug, but I wanted to make sure I wasn't missing something before I go complaining to apple about it.

推荐答案

au中似乎有错误假设总是使用限定名称空格的主题翻译标题,因为它们有时可能为零,它会崩溃。

There seems to be an error in the automatically translated headers that assumes that qualified name spaces are always used, however, since they can be nil sometimes, it crashes.

如果您使用:

func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: [NSObject : AnyObject]!)

通过使命名空间和qualifiedName参数隐式展开(或明确包装也应该起作用)你应该很高兴。

by making the namespace and qualifiedName parameters implicitly unwrapped (or explicitly wrapped should work as well) you should be good to go.

您可能必须对您提供的带有namespaceURI或qualifiedName参数的任何委托方法进行类似的更改。

You'll probably have to make similar changes for any delegate methods you provide that take namespaceURI or qualifiedName parameters.

这篇关于Swift中的parser.parse()导致EXC_BAD_ACCESS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆