gpt4 book ai didi

SwiftyJSON 如何正确访问变量?

转载 作者:行者123 更新时间:2023-11-30 10:13:39 26 4
gpt4 key购买 nike

我试图弄清楚 SwiftyJSON 但我遇到了问题

下面显示的代码工作正常

 import UIKit     
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

let url = NSURL(string: "https://api.whitehouse.gov/v1/petitions.json")
var request = NSURLRequest(URL: url!)
var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)
if data != nil {
let hoge = JSON(data: data!)
let count = hoge["results"][0]["body"]
println(count)
}
}}

但是当我尝试添加一个访问hoge的方法时,它什么也不返回

代码如下所示

 func res() {
dump(hoge)
}

我试图在ViewControllerheader中声明let hogelet count,但它总是给出错误。

如何正确执行此操作,以便我可以通过所有代码访问数组?

提前致谢

最佳答案

如果您在函数内声明变量,就像在 viewDidLoad 中所做的那样,则该变量在同一范围内可用,这意味着该变量不存在在 viewDidLoad 之外。实际上,当函数执行完成时,它甚至被释放(销毁)。

解决方案是在类的根部、任何函数之外创建 var hoge: JSON?,然后仅在可用时将 JSON 值分配给该变量:

class ViewController: UIViewController {

var hoge: JSON?

override func viewDidLoad() {
super.viewDidLoad()

let url = NSURL(string: "https://api.whitehouse.gov/v1/petitions.json")
var request = NSURLRequest(URL: url!)
var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil)
if data != nil {
hoge = JSON(data: data!)
let count = hoge!["results"][0]["body"]
println(count)
}
}}

这样,您还可以创建其他可以在 viewDidLoad 之外访问 hoge 的方法。

关于SwiftyJSON 如何正确访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31478159/

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