问题标签 [swift5.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3045 浏览

swift - Swift 5.1 @propertyWrapper - 在初始化所有存储的属性之前在属性访问中使用“自我”

我正在尝试使用 Swift 5.1 属性包装器,但每次我认为我有一个很酷的用例时,我最终都会遇到无法在 View Model 的初始化程序中使用它们的问题。

举这个极其简单的例子。

NoProblem中,一切都按预期工作。但是在OhNoes我得到这个错误:'self' used in property access 'foo' before all stored properties are initialized

当然这是一个非常简化的例子,但是我在做同样的问题时遇到了同样的问题@Property为可观察属性或本文@Injected中的包装器等进行包装时,我遇到了同样的问题。

不,可悲的是,让它成为一个非专业的财产也行不通:Property 'foo' with a wrapper cannot also be lazy.


这在 SwiftUI 中也是一个相当大的问题,请看这个例子:

0 投票
2 回答
1056 浏览

swift - 如何删除 PDF 文档边距

我将 pdfdocument 添加到 PDFView 。但它正在显示边缘,也显示在慢跑中。如何删除此边距。有没有办法将 pdfdocument 设置为左​​上角。

在此处输入图像描述

0 投票
1 回答
338 浏览

swift - 尝试使用字符串比较过滤数据时,SwiftUI 无法编译

希望有人可以帮助我。一直试图弄清楚这里发生了什么,但没有运气。我正在构建的应用程序包含下面列出的 SwiftUI 视图。

This View is embedded in another View which contains other List's, VStack's, etc. It is called when an item is selected to show another list of data based upon the user's selection.

一切看起来、行为和工作都按预期进行(没有数据过滤)。

现在,我正在使用一个使用简单的数据字典创建的示例数据集。当我尝试通过字符串比较对此数据应用过滤器时,它会导致编译失败,并显示以下消息:

来自 Xcode:

编译器无法在合理的时间内对该表达式进行类型检查;尝试将表达式分解为不同的子表达式

从画布:

timedOutSpecific(30.0, operation: "一个 thunk to build")

除了这些错误之外,Xcode 的能源消耗也在飙升,直到出现故障。

如果我删除 if 语句中的代码self.dataSet == aRecord.module并将其替换为true. 每当我尝试过滤我的数据集时,都会导致这些错误。

我认为字符串比较是罪魁祸首的原因之一是它如上所述崩溃。我还尝试将条件放置在代码中的其他位置,结果相同。任何时候我应用这种类型的过滤器都会导致发生这种崩溃。

任何建议表示赞赏。

谢谢你。

0 投票
2 回答
158 浏览

swift - 我可以在 Swift UI 中使用什么来代替 Text View?

我想要一个具有最大字符数限制的可编辑文本字段,就像一条推文一样,但我在 SwiftUI 中没有找到解决方案。有没有人找到解决这个问题的方法?

0 投票
9 回答
38987 浏览

swift - Swift 5.1 错误:[插件] AddInstanceForFactory:没有为 id 注册工厂

应用程序崩溃并显示以下错误消息

崩溃时的断点似乎与 AVAudioPlayer 有关


有没有没有 JOIN 或 UNION 的 CTE 自我引用的解决方案?就像经理-员工问题一样

根据经典的经理-员工同桌问题解决了一个挑战。给定一个包含 ids、employees 和 managerid 的表

桌子:

我已经走了很远是使用逗号分隔的'FROM'之后的旧形式的连接(我不想要)进行查询:

我希望使用没有 JOINS 的 CTE 的解决方案,如果可能的话,也可以不使用 UNION 来获得输出:

0 投票
1 回答
1620 浏览

ios - 更新到 Xcode 11 Swift 5.1 后出现 Google AdMob 错误

由于我已更新到 Xcode 11,我的应用程序中的插页式广告将不再加载。(在此之前一切正常。该应用程序甚至在 App Store 上发布。我们现在正在创建该应用程序的更新版本)

我通过 Cocoapods 安装了 Google AdMobs SDK 并将其更新到最新版本。仍然没有成功。(我按照谷歌教程的所有步骤,如何实现插页式广告)这些是我从控制台得到的错误消息:

有没有人有类似的问题或经历并知道如何解决?任何帮助表示赞赏。非常感谢!

0 投票
0 回答
727 浏览

ios - Swift:在串口监视器上接收来自服务器的 UDP 数据包,但不在 ios 应用程序中

显示正在发送的输出包的串行端口监视器检测到协议号,这意味着发送的数据包是正确的我将 UDP 数据包发送到 wifi 模块并接收它们,我在串行端口监视器中成功监控它们,但无法在 iOS 应用程序中接收它们。

我正在使用网络框架进行连接和接收。连接部分工作得很好,但是当我为端口设置一个侦听器并尝试获取 rsponse 时,receiveMessage尽管我看到模块发送的输出包,但它并没有被调用。

0 投票
2 回答
476 浏览

swift - 只有一个值时,函数生成器不起作用?

我有一个函数构建器

功能

利用

为什么 b 不是 20?

我尝试添加其他 buildBlock

但不工作:(

任何想法?

0 投票
0 回答
168 浏览

ios - 禁用 UIStackView 中特定堆栈的滚动

我正在尝试这种使用 UIScrollView 和 UIStackView 添加多个子 VC 的方法。

我的垂直 stackView 中的第一个 childVC 是一组简单的标签,高度约为 150 磅。

第一个 childVC 下的第二个 childVC 是一个 collectionView,它具有可区分的数据源和组合布局样式,使其看起来像一个 tableView,每个单元格中都有标签和 textview。随着用户添加更多数据,第二个 childVC 的内容将会增长。

我想要的是:

  • 将第一个 childVC 固定在顶部,使其不滚动;或者
  • 将第一个 childVC 与第二个 childVC 固定在一起,以便它们一起滚动。

现在,当我滚动到第二个 childVC 所在的位置时,第二个 childVC 将滚动,将第一个 childVC 留在原来的位置(在视图顶部)。但是第二个 childVC 不会滚动到列表的底部(单元格被我的 tabBarController 抓住了)。因此,如果我想一直滚动到底部以查看完整列表,我必须从第一个 childVC 滚动。

但是事情变得很时髦,因为出现了两个滚动指示器,如果我想上下滚动,我必须使用滚动指示器,这整个滚动体验变成了一场噩梦

两个子 VC 都有单独的视图子类。例如:

第二个 childVC 几乎相同,除了约束是:

如果我没有像这样设置 childViews 的 topAnchors 和/或 heightAnchors,stackView 会重叠。我觉得这很奇怪,因为我认为 stackView 的重点是水平或垂直堆叠,并且添加的每个arrangeSubView 都有它的自己的内容视图。

如何修复它,以便我可以一起滚动第一个 childVC 和第二个 childVC,而不是每个都有自己的滚动指示器?

编辑:这是我所说的时髦滚动的屏幕记录。 编辑2:我发现这种时髦行为的问题是因为随着用户添加更多数据,我的第二个 childVC 的高度会动态增长。现在,第二个 childVC 的视图约束设置为视图的锚点,高度约束设置为,view.frame.height因为不设置高度约束不会加载视图......我不知道为什么。但是,如果我将高度限制设置为疯狂的东西view.frame.height * 5然后我得到了我想要的结果,因为第二个 childVC 没有单独的滚动指示器。但是因为这个 VC 动态地改变高度,所以设置一个恒定的高度是一个糟糕的主意,我希望高度随着数据的添加/删除而增长。有任何想法吗?我应该为此发布一个单独的问题吗?(新的堆栈溢出......对不起)

0 投票
0 回答
145 浏览

ios - swift: 为 UDP 调用 receiveMessage(completion:) 时出现问题

我正在通过UDP发送一些数据,但receiveMessage(completion:)没有被调用。

使用网络框架,我打开连接,当它处于就绪状态时,我发送一个正在成功发送的数据报,但我在接收传入的数据报时遇到问题。顺便说一下,我在同一连接上调用接收。

我应该怎么办?