gpt4 book ai didi

ios - Swift 代码中的 EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)。为什么?

转载 作者:行者123 更新时间:2023-11-28 13:07:05 24 4
gpt4 key购买 nike

我正在尝试解析 XML,但是当我将字符串放入标签或文本字段中时,它会出现错误。为什么?我不在 Viewcontroller.swift 中,而是在另一个类中。我需要用 XML 解析的结果更改标签/文本字段文本。

var task = session.dataTaskWithRequest(lobj_Request, completionHandler: {data, response, error -> Void in
println("Response: \(response)")
var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Body: \(strData)")
let parser = NSXMLParser(data: data)
parser.delegate = self
parser.parse()


if error != nil
{
println("Error: " + error.description)
}
})

task.resume()
}


var currentElementName:NSString = ""

func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [NSObject : AnyObject])
{
currentElementName = elementName
}


func parser(parser: NSXMLParser, foundCharacters string: String?)
{
if currentElementName == "HelloAppleAndroidResult"
{
self.txtResult.text = string
}
}

问题是:

self.txtResult.text = string

有人可以帮助我吗?

最佳答案

您需要安全地解包字符串,因为您已在解析器方法签名中将其声明为可选。

if let string = string {
self.txtResult.text = string
}

这也意味着此时 string 为 nil —— 你的签名上写着:为 nil 没关系。此外,字符串对于任何参数来说都不是一个很好的名称——我建议将其更改为与概念更相关的名称。

您也可以在此处使用 nil-coalescing 运算符。它将要求您为分配提供替代方案(这是该运算符(operator)的重点)。备选方案不能是可选的。

self.textResult.text = string ?? alternativeString

关于ios - Swift 代码中的 EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32394731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com