社区首页 >问答首页 >Swift ui转义闭包捕获变异的“self”参数

Swift ui转义闭包捕获变异的“self”参数
EN

Stack Overflow用户
提问于 2021-07-14 21:32:15
回答 1查看 74关注 0票数 0

我在使用init()时遇到了以下问题,有谁能帮我解决吗?

代码语言:javascript
代码运行次数:0
复制
    @State private var activity: [ResponseActivity] = [ResponseActivity()]

    func getActivity(completion: @escaping ([ResponseActivity]?) -> ()){
        var userInfo: [ResponseActivity] = [ResponseActivity()]
        let url = URL(string: "https://api.github.com/users/\(self.userInfo.login)/received_events")!
        let urlRequest = URLRequest(url: url)
        
        print("self.userInfo.login", self.userInfo.login)
        
        let task = URLSession.shared.dataTask(with: urlRequest) { data, urlResponse, error in
            guard let content = data else {
                print("Error getting data from API.")
                return
            }
            
            do {
                userInfo = try JSONDecoder().decode([ResponseActivity].self, from: content)
            } catch {
                print("Error parsing URL from data Activity.")
                return
            }
            completion(userInfo)
        }
        task.resume()
    }
EN

回答 1

Stack Overflow用户

发布于 2021-07-14 21:44:50

像这样的struct (View)中的属性是不可变的。您可以在init中设置初始值,但之后它们就不再是可变的。像@State这样的特殊属性包装器允许您稍后更改值,但您尝试使用_activity = State(...)struct上设置实际值。

我建议将这样的异步代码转移到ObservableObject中--然后,您将拥有一个具有可变属性的class。这意味着您的userInfoisLogin等将是@Published属性,并且可能需要是可选的,因为它们在getActivity完成之前不会有值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68385329

复制
相关文章
Java系列 | 属性依赖注入被认为是有害的
在依赖注入框架中,字段注入是一种非常流行的做法,例如Spring。然而,它有几个严重的权衡因素,一般来说应该避免。
Tinywan
2023/03/08
7430
Java系列 | 属性依赖注入被认为是有害的
大神用Python编写虚拟机解释器
群内不定时分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴入群学习交流 环境介绍 环境采用带桌面的Ubuntu Linux环境, LX终端(LXTerminal):Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令 GVim:非常好用的编辑器,最简单的用法可以参考课程Vim编辑器 环境使用 众所周知,python语言作为一门超级人性化的语言越来越被受到重视。虚拟服务同样受到人们的重视,那么本次项目的目的就是让大家学会使用python制作一个虚
企鹅号小编
2018/01/12
8610
大神用Python编写虚拟机解释器
如何用Python编写一个Lisp解释器
这篇文章有两个目的:一是展示如何实现一个计算机语言的解释器,二是演示如何使用 Python 3 构造 Lisp 的一种方言 Schema,作者把自己的这个语言解释器称作 Lispy。几年前,作者曾展示过如何用 Java 和 Common Lisp 写 Schema 解释器。而本次的目的很纯粹,作者会尽可能简明扼要为大家进行介绍。
AI科技大本营
2019/08/15
1.4K0
如何用Python编写一个Lisp解释器
Unix 是用 C 语言编写的吗?
Unix 确实是用 C 语言编写的,而且是世界上第一个用 C 语言编写的操作系统。但是 Unix 是怎么产生的?C 语言又是怎么产生的?Unix 为什么要用 C 语言来编写?相信看完这篇文章你很快就会有了答案。
Coding十日谈
2020/08/13
4.8K0
Unix 是用 C 语言编写的吗?
python解释器找不到_python解释器路径
暑假放假两周,两周没写代码,打开PyCharm发现解释器找不到了(Python Interpreter Nothing to show),程序自然也无法运行,如图:
全栈程序员站长
2022/09/26
1.7K0
python解释器找不到_python解释器路径
python解释器与编译器_pycharm python解释器
什么是Python?Python的起源和发展。Python的优势。
全栈程序员站长
2022/09/27
1.2K0
python解释器与编译器_pycharm python解释器
用python解释mapreduce
map import sys #输入为标准输出stdin for line in sys.stdin: #删除开头和结尾的空行 line = line.strip() #以默认空格分隔单词到words列表 words = line.split() for word in words: #输出所有单词,格式为“单词,1”以便为reduce的输入 print '%s %s' % (word,1) reduce import sys cur
零月
2018/04/25
7130
用python解释mapreduce
pycharm配置python解释器的问题_python解释器的提示符
转载自: https://blog.csdn.net/weixin_37861326/article/details/80327503
全栈程序员站长
2022/09/28
9150
pycharm配置python解释器的问题_python解释器的提示符
Python写的Python解释器(五)
条件和循环 到目前为止,解释器仅仅只是简单的逐个执行指令。下面将会讲述需要多次执行某些指令,或者在特定条件下跳过它们的做法。在代码中编写循环和if语句时,解释器必须能够在指令进行跳转。Python在字节码中用GOTO语句处理循环和条件语句。再看一下函数cond的反汇编:
哒呵呵
2018/08/06
8660
Python写的Python解释器(一)
导论 Byterun是一个用Python实现的Python解释器。它的结构类似于CPython(Python的主流实现方式)。
哒呵呵
2018/08/06
1.5K0
Python写的Python解释器(六)
目前可以确认Python虚拟机是一个堆栈机器。它通过指令来控制执行顺序,推入和弹出堆栈的值。在上面的例子中,最后一条指令是RETURN_VALUE,它对应于代码中的return语句。但指令返回到哪里呢?
哒呵呵
2018/08/06
5300
手机python 3.8解释器_Python 3.8 解释器安装教程
Python是一个门面向对象的解释型编程语言,如果要完成Python程序的开发,需要有Python解释器的支持,所以首先需要配置好Python解释器(本教程选择最新的 Python 3.8.3 版本),没有安装的小伙伴,可以跟着一起操作哦。
全栈程序员站长
2022/09/15
1.2K0
Python写的Python解释器(二)
玩具解释器 首先从一个玩具解释器开始,这个微型解释器只能做加法,而且值包含了三个指令,这三个指令是:
哒呵呵
2018/08/06
6520
Python写的Python解释器(三)
变量 接下来,给解释器添加变量。 变量需要一条指令来存储变量的值,STORE_NAME; 一条检索它的指令,LOAD_NAME; 以及变量名称到值的映射。 目前,先忽略命名空间和范围,将变量映射存储在解释器对象本身上。 最后,除了常量列表之外,我们必须确保what_to_execute具有变量名称列表。
哒呵呵
2018/08/06
5460
Python写的Python解释器(四)
真正的Python字节码 现在让进入真正的Python字节码中,从一个简单的函数开始:
哒呵呵
2018/08/06
5980
python GIL解释器
全局解释器锁(Global Interpreter Lock)是计算机程序设计语言解释器用于同步线程的工具,使得在同一进程内任何时刻仅有一个线程在执行。常见例子有CPython(JPython不使用GIL)与Ruby MRI。
云深无际
2021/04/14
1.1K0
python GIL解释器
python解释器详解
操作系统位于计算机硬件与应用软件之间是一个协调、管理、控制计算机硬件资源与软件资源的控制程序。操作系统的功能为:控制硬件、把对硬件复杂的操作封装成优美简单的接口(文件),给用户或者应用程序去使用。我们以后开发的都是应用程序,应用程序无法直接操作硬件,但凡要操作硬件,都是调用操作系统的接口。
狼啸风云
2019/01/18
3.8K0
用 Antlr 重构脚本解释器
在上一个版本实现的脚本解释器 GScript 中实现了基本的四则运算以及 AST 的生成。
crossoverJie
2022/10/27
7870
用 Antlr 重构脚本解释器
设置pycharm的python解释器_pycharm安装后无解释器
弹出下图界面,选择左边红色圈,Project Python -> Project Interpreter
全栈程序员站长
2022/09/27
1.1K0
设置pycharm的python解释器_pycharm安装后无解释器
点击加载更多

相似问题

将jquery动画代码转换为css3转换

20

在下面的场景中,如何使用CSS将纯色转换为透明?

27

Css过渡渐变到纯色

10

将框架集转换为css

14

将MaterialToggleButton的选定颜色转换为纯色

161
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文