我见过这段代码:
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomeNetworkStuff];
});
Run Code Online (Sandbox Code Playgroud)
这看起来对我来说没什么意义.
编辑:澄清我的问题的条件:
dispatch_async
是从主线程执行的.doSomeNetworkStuff
是繁重的工作任务.派生,当然,但使用主队列只会将调度的任务拉回到ui线程并阻止它.
拜托,我错过了什么吗?谢谢.
使用带有嵌入式seque的ContainerView我得到了这个:
*由于未捕获的异常'NSInvalidUnarchiveOperationException'终止应用程序,原因:'无法实例化名为UIStoryboardEmbedSegueTemplate的类'
我的搜索没有提供很多,所以:这是否意味着"抱歉,只在iOS6上"?
一个非常简单的 CoreData 应用程序:下面提供了所有代码。
一个 NavigationView 包含
每个链接的 ListView (Message/Post) 都有
现在,当您在模拟器(任何 iOS 13.x 版本)上运行此应用程序时,所有这些都按上述描述的预期运行。
但是在运行 iOS 13.4 的设备上
您也可以先从 Posts 开始这个过程。然后在消息列表视图上发生同样的崩溃。
我坚信这是一个 iOS 13.4 错误,因为类似的代码在 Xcode 11.3 / iOS 13.3 上运行良好。
有谁知道解决方法或解决方法吗?
这是完整项目的链接:Full Xcode Project
内容视图:
import SwiftUI
import CoreData
struct MessageList: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Message.entity(), sortDescriptors: [])
var messages: FetchedResults<Message>
var body: some View {
List() …
Run Code Online (Sandbox Code Playgroud) 下面的代码生成一个简单的 VStack 和文本视图,它们之间没有显示间距(第 1 行和第 2 行)。
但是,将图像添加到第三行(绿色)会在整行的上方和下方增加不需要的间距。
struct ContentView: View {
var body: some View {
VStack {
HStack {
Text("one thing")
}.background(Color(.yellow))
HStack {
Text("nothing")
}.background(Color(.red))
HStack {
Text("three")
Image(systemName: "star")
.resizable()
.frame(width: 8, height: 8)
}.background(Color(.green))
HStack {
Text("three things")
}.background(Color(.red))
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何避免额外的不需要的空间?
空间显示与图像大小无关(即使图像尺寸只有几个像素)。
而且,当然,我想知道为什么会生成空间。
谢谢你的帮助
以上代码截图: