当前位置: 首页 > 知识库问答 >
问题:

Swift中的“some”关键字导致与内存相关的崩溃

蓟辰沛
2023-03-14

当我用some视图类型定义SwiftUI视图时,我得到了全局缓冲区溢出崩溃。当我使用确切的类型时,崩溃消失了。

这会崩溃:let txt:some View=Text(“Hi”)

这个工作原理:let txt: Text=Text(Hi)

有什么想法吗?提前感谢。

共有1个答案

蒲寂离
2023-03-14

不透明类型似乎不适合这样的定义。关于这个SO线程有很多有趣的信息:Swift(UI)中的“一些”关键字是什么?

您可以将变量键入为AnyView,并使用AnyView()来换行/键入擦除内容--然后您可以使用任何所需的修饰符。

let txt: AnyView = AnyView(Text("Hi").frame(width: 20, height: 20, alignment: .center))

我特别喜欢这个扩展,让它看起来更干净一点:

extension View {
    func eraseToAnyView() -> AnyView {
        return AnyView(self)
    }
}

let txt: AnyView = Text("Hi").frame(width: 20, height: 20, alignment: .center).eraseToAnyView()
 类似资料:
  • 问题内容: 新的SwiftUI教程具有以下代码: 第二行单词和在其网站上被高亮显示,就像它是一个关键字一样。 Swift 5.1似乎没有作为关键字,而且我也看不出该词还有什么其他用处,因为它通常位于类型所在的位置。是否有Swift的未发布新版本?以某种我不知道的方式在类型上使用的函数吗? 关键字有什么作用? 问题答案: 是SE-0244引入的不透明结果类型,在带有Xcode 11的Swift 5.

  • Swift 2 引入了 关键字,该关键字可用于确保各种数据已配置就绪。我在这个网站上看到的一个例子演示了一个提交已开发的功能: 我想知道使用< code>guard与使用< code>if条件的老式方法有什么不同。它能给你带来用简单的支票无法得到的好处吗?

  • 问题内容: 我正在尝试从parse.com实现一些代码,并且在void后发现一个关键字。 我难住了,这是什么?您在第二行看到 该文档没有对此进行说明。我知道关键字用于循环。 有人确认吗? 问题答案: 在命名函数中,我们声明参数并在声明行中返回类型。 在匿名函数中,没有声明行-它是匿名的!因此,我们在正文的开头使用一行来代替。 (这是匿名函数的 完整 形式。但是Swift拥有一系列规则,允许在某些情

  • 问题内容: 来自标准库的文件包含围绕228行的以下几行代码: 在这种情况下是什么意思,或者通常是什么关键字? 问题答案: 是Swift 3中的新访问级别,随实现而引入 SE-0117允许区分公共访问权限和公共替代权限 从2016年8月7日开始,Swift 3快照和Xcode 8 beta 6都可以使用它。 简而言之: 在定义模块之外, 可以访问 和 可继承 一个类。一类成员是 可访问 和 可重写

  • 问题内容: 当读取a的初始化程序时,我看到一些参数默认为value 。什么是关键词代表什么? 问题答案: 这不是有效的Swift代码,它是即时生成的。 在这里意味着有一些默认值,但发电机不能想像它适合你才能看到它。从技术上来说,默认值是一个内联函数,因此不能轻易将其转换为简单的声明。 您可以看到类似的声明 其中默认为(在Swift 1.x中)和默认为(在Swift 1.x中)。 在的情况下,默认值

  • 本文向大家介绍浅谈Java中的final关键字与C#中的const, readonly关键字,包括了浅谈Java中的final关键字与C#中的const, readonly关键字的使用技巧和注意事项,需要的朋友参考一下 在编程语言中都有某种方式,告知编译器一块数据是恒定不变的。有两个需求 1. 一个永不改变的编译器常量 2. 一个在运行时被初始化的值,而这个值不会被改变 在Java中,使用fina