小编kdi*_*891的帖子

接收 NSError "Foundation._GenericObjCError 错误 0。"

我试图简单地保存一个核心数据记录。

代码:

@Environment(\.managedObjectContext) var managedObjectContext
@State var title: String = ""
@State var selectedColor: UIColor? = ColorConstants.defaultColor

// more irrelevant code here

Button(action: {
    let todoList = TodoList(context: self.managedObjectContext)
    todoList.title = self.title
    todoList.color = self.selectedColor

    do {
        try self.managedObjectContext.save()
    } catch let error as NSError {
        print(error.localizedDescription)
        print(error.localizedFailureReason)
        print(self.title)
        print(self.selectedColor)
    }
}, label: {
    Text("Save")
})
Run Code Online (Sandbox Code Playgroud)

这是打印:

The operation couldn’t be completed. (Foundation._GenericObjCError error 0.)
nil
Test
Optional(<UIDynamicSystemColor: 0x600001daf300; name = systemRedColor>)
Run Code Online (Sandbox Code Playgroud)

我在 Core Data 中title设置为 a String …

core-data swift swiftui

5
推荐指数
0
解决办法
1129
查看次数

SwiftUI 在 FetchRequest 中使用带有结构参数的关系谓词

如何使用@FetchRequest传递给 a 的参数struct

struct TodoItemView: View {
    var todoList: TodoList
    @FetchRequest(
        entity: TodoItem.entity(),
        sortDescriptors: [NSSortDescriptor(key: "order", ascending: true)],
        predicate: NSPredicate(format: "todoList == %@", todoList)
    ) var todoItems: FetchedResults<TodoItem>
    ...
Run Code Online (Sandbox Code Playgroud)

我已经todoList设置为via的One关系。TodoItemTodoList

它给了我错误:

不能在属性初始值设定项中使用实例成员“todoList”;属性初始值设定项在 'self' 可用之前运行

@FetchRequest如果我不能在初始化程序中使用它,我该如何处理这种关系?另外,我应该todoList.objectID在这里使用某个地方吗?

core-data ios swift swiftui

2
推荐指数
1
解决办法
749
查看次数

子视图导航栏中的多余空间很大

我的子视图导航栏中有一个很大的空间。

我假设通过添加trailing按钮,它将使所有内容都很好地对齐back按钮的右侧。

这是我的主要观点:

在此处输入图片说明

现在这是我的子视图:

在此处输入图片说明

看一下顶部的巨大缺口。我希望plus按钮位于按钮的右侧back。我是否需要为此创建自定义后退按钮?

这是我的子视图代码:

var body: some View {
    NavigationView {
        List {
            Text("hello world")
            Text("hello world")
            Text("hello world")
        }
        .navigationBarTitle(todoList.title!)
        .navigationBarItems(trailing:
            HStack {
                Button(action: {
                    self.add = true
                }, label: {
                    Image(systemName: "plus")
                })
            }
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

我也想从back按钮中删除文本,所以它只是一幅图像。

总结一下:

  • 我想要plus按钮右上方的back按钮
  • 我想删除back按钮文本,ColorTodo在本示例中为

是否有SwiftUI的本机方式,还是需要自定义后退按钮并禁用默认按钮?

ios swift swiftui

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

SwiftUI 图像作为自定义“单选”按钮

我想要一个带有一些预定义颜色的简单颜色选择器。用户应该只能选择其中一种颜色。

It should work like a "radio" input where when one color is selected, the other colors uncheck.

我决定一个不错的方法是使用系统“circle.fill”和“checkmark.circle.fill”作为所选项目的图像。我只是将foregroundColorfor each设置为相应的.color.

不过,我很难弄清楚这个逻辑。我知道我可以为图像本身创建一个简单的视图并将其传递.color给每个图像,但是我将如何确保一次仅“检查”一张图像,并从“已检查”图像中获取值,以便它可以传递给核心数据?

我想我可以使用陈述$var哪个改变,但是在选择一个人时如何取消选择所有其他图像?我应该将图像放入数组或其他东西中吗?我迷路了。

ios swift swiftui

0
推荐指数
1
解决办法
1804
查看次数

标签 统计

swift ×4

swiftui ×4

ios ×3

core-data ×2