问题标签 [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.
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 中也是一个相当大的问题,请看这个例子:
swift - 如何删除 PDF 文档边距
我将 pdfdocument 添加到 PDFView 。但它正在显示边缘,也显示在慢跑中。如何删除此边距。有没有办法将 pdfdocument 设置为左上角。
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
. 每当我尝试过滤我的数据集时,都会导致这些错误。
我认为字符串比较是罪魁祸首的原因之一是它如上所述崩溃。我还尝试将条件放置在代码中的其他位置,结果相同。任何时候我应用这种类型的过滤器都会导致发生这种崩溃。
任何建议表示赞赏。
谢谢你。
swift - 我可以在 Swift UI 中使用什么来代替 Text View?
我想要一个具有最大字符数限制的可编辑文本字段,就像一条推文一样,但我在 SwiftUI 中没有找到解决方案。有没有人找到解决这个问题的方法?
ios - 更新到 Xcode 11 Swift 5.1 后出现 Google AdMob 错误
由于我已更新到 Xcode 11,我的应用程序中的插页式广告将不再加载。(在此之前一切正常。该应用程序甚至在 App Store 上发布。我们现在正在创建该应用程序的更新版本)
我通过 Cocoapods 安装了 Google AdMobs SDK 并将其更新到最新版本。仍然没有成功。(我按照谷歌教程的所有步骤,如何实现插页式广告)这些是我从控制台得到的错误消息:
有没有人有类似的问题或经历并知道如何解决?任何帮助表示赞赏。非常感谢!
swift - 只有一个值时,函数生成器不起作用?
我有一个函数构建器
功能
利用
但
为什么 b 不是 20?
我尝试添加其他 buildBlock
但不工作:(
任何想法?
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 动态地改变高度,所以设置一个恒定的高度是一个糟糕的主意,我希望高度随着数据的添加/删除而增长。有任何想法吗?我应该为此发布一个单独的问题吗?(新的堆栈溢出......对不起)
ios - swift: 为 UDP 调用 receiveMessage(completion:) 时出现问题
我正在通过UDP发送一些数据,但receiveMessage(completion:)
没有被调用。
使用网络框架,我打开连接,当它处于就绪状态时,我发送一个正在成功发送的数据报,但我在接收传入的数据报时遇到问题。顺便说一下,我在同一连接上调用接收。
我应该怎么办?