You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Alamofire请求未发送问题:GET请求代码未执行print(data)

问题解决办法

你的代码没触发请求、进不了回调的核心原因是请求对象被提前释放了。

Swift的ARC会自动回收不再被引用的对象,你现在把AF.request返回的DataRequest存在局部变量里,代码块执行完后这个变量就被销毁了,请求还没发出去就被取消,自然走不到print(data)那一步。

修复方案很简单:把请求对象存为类的实例属性,而不是局部变量,让它能保持引用直到请求完成:

// 在你的类(比如ViewController)里定义一个实例变量
var filmRequest: DataRequest?

// 在需要发起请求的方法里写逻辑
func loadFilmData() {
    filmRequest = AF.request("https://swapi.dev/api/films/?format=json")
    filmRequest?.responseJSON { response in
        print(response)
        // 请求完成后可以主动置空释放资源
        self.filmRequest = nil
    }
}

另外也可以直接链式调用,不用单独存变量,但要确保整个链式调用的对象不会被提前释放(比如不要在临时闭包或局部作用域里发起请求):

AF.request("https://swapi.dev/api/films/?format=json")
    .responseJSON { response in
        print(response)
    }

内容的提问来源于stack exchange,提问作者dev-lop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 15:52:04