小编nin*_*nes的帖子

main_queue上的dispatch_async?

我见过这段代码:

dispatch_async(dispatch_get_main_queue(), ^{
    [self doSomeNetworkStuff];
});
Run Code Online (Sandbox Code Playgroud)

这看起来对我来说没什么意义.

编辑:澄清我的问题的条件:

  • 调用dispatch_async是从主线程执行的.
  • 发送的消息doSomeNetworkStuff是繁重的工作任务.
  • ......并且不仅仅是UI更新任务.

派生,当然,但使用主队列只会将调度的任务拉回到ui线程并阻止它.

拜托,我错过了什么吗?谢谢.

ios

29
推荐指数
5
解决办法
4万
查看次数

使用ContainerView的NSInvalidUnarchiveOperationException

使用带有嵌入式seque的ContainerView我得到了这个:

*由于未捕获的异常'NSInvalidUnarchiveOperationException'终止应用程序,原因:'无法实例化名为UIStoryboardEmbedSegueTemplate的类'

我的搜索没有提供很多,所以:这是否意味着"抱歉,只在iOS6上"?

storyboard ios5 segue ios6

12
推荐指数
1
解决办法
2863
查看次数

iOS 13.4 CoreData SwiftUI 应用程序在设备上因“EXC_BREAKPOINT (code=1, subcode=0x1f3751f08)”崩溃

一个非常简单的 CoreData 应用程序:下面提供了所有代码。

  • 使用 CoreData 模板单视图应用程序启动。
  • 2 个实体,每个实体都有一个字符串属性:Message(title) 和 Post(name)

一个 NavigationView 包含

  • 导航链接到消息列表
  • 导航链接到帖子列表

每个链接的 ListView (Message/Post) 都有

  • 将项目添加到列表的按钮
  • 从列表中删除所有项目的按钮

现在,当您在模拟器(任何 iOS 13.x 版本)上运行此应用程序时,所有这些都按上述描述的预期运行。

但是在运行 iOS 13.4 的设备上

  • 点按“消息”
  • 创建/删除消息工作正常,SwiftUi 视图会立即更新。
  • 点击“返回”
  • 再次点击“消息”。虽然仍然创建/删除消息工作正常:调试器现在显示警告:“环境中的上下文未连接到持久存储协调器:NSManagedObjectContext:0x280ed72c0
  • 点击“帖子”==> 应用程序崩溃并显示 EXC_BREAKPOINT(代码=1,子代码=0x1f3751f08)

您也可以先从 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)

core-data swiftui

6
推荐指数
1
解决办法
1209
查看次数

SwiftUI 在图像周围生成不需要的空间

下面的代码生成一个简单的 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)

如何避免额外的不需要的空间?

空间显示与图像大小无关(即使图像尺寸只有几个像素)。

而且,当然,我想知道为什么会生成空间。

谢谢你的帮助

以上代码截图:

输出:

swiftui

4
推荐指数
1
解决办法
721
查看次数

标签 统计

swiftui ×2

core-data ×1

ios ×1

ios5 ×1

ios6 ×1

segue ×1

storyboard ×1