小编np2*_*314的帖子

当 SwiftUI 中的相关实体发生更改时,如何更新 @FetchRequest?

在 SwiftUI 中,View我有一个List基于@FetchRequest显示Primary实体和通过关系连接Secondary实体的数据。当我添加一个带有新的相关次要实体的新实体时,View和它List的更新正确Primary

问题是,当我Secondary在详细视图中更新连接的项目时,数据库会更新,但更改未反映在Primary列表中。显然,@FetchRequest不会被另一个视图中的更改触发。

当我此后在主视图中添加新项目时,先前更改的项目最终会得到更新。

作为一种解决方法,我还更新Primary了详细信息视图中实体的属性,并将更改正确传播到Primary视图。

我的问题是:如何强制更新@FetchRequestsSwiftUI Core Data 中的所有相关内容?特别是,当我无法直接访问相关实体时/ @Fetchrequests

数据结构

import SwiftUI

extension Primary: Identifiable {}

// Primary View

struct PrimaryListView: View {
    @Environment(\.managedObjectContext) var context

    @FetchRequest(
        entity: Primary.entity(),
        sortDescriptors: [NSSortDescriptor(key: "primaryName", ascending: true)]
    )
    var fetchedResults: FetchedResults<Primary>

    var body: some View {
        List {
            ForEach(fetchedResults) { primary in
                NavigationLink(destination: …
Run Code Online (Sandbox Code Playgroud)

core-data swiftui combine

36
推荐指数
3
解决办法
1万
查看次数

如何在使用 SwiftUI 时调用“viewDidLoad”时运行函数

我正在尝试在应用程序完成加载后运行一个函数,例如viewDidLoad,但我现在正在使用 SwiftUI 而我没有viewDidLoad. 我现在该怎么做?

var body: some View {
    NavigationView {
        Form {
            Section {
                self.exampleFunction()

                Text(" ......  ")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想从该函数中获取一些信息并将其呈现在文本中。但我这样做的方式是错误的。这不是建筑。

swift swiftui

12
推荐指数
3
解决办法
2万
查看次数

修改核心数据实体的属性后,SwiftUI 预览崩溃

在此问题之前,预览运行良好。但是,在我更改了文件中的属性类型(例如 from Stringto Float.xcdatamodeld并相应地修改了手动定义文件后,它看起来与此类似

public class test01: NSManagedObject, Identifiable {
    @NSManaged public var var01: String
    ...
}
Run Code Online (Sandbox Code Playgroud)

模拟在前几次尝试时崩溃,但在我删除模拟 iPhone 内的应用程序后再次工作。但是当我尝试使用预览时,它总是显示一个错误选项卡,说它总是在更新视图时崩溃,即使是在创建 SwiftUI 预览文件时给出的最简单的启动文件“Hello World”。

应用程序特定信息:致命错误:未解决的错误错误域=NSCocoaErrorDomain 代码=134140“持久存储迁移失败,缺少映射模型。” UserInfo={destinationModel=() isEditable 0

此时我找不到解决方案,对这个错误/问题有什么想法吗?

iphone xcode ios swiftui

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

仅在第一页上隐藏导航栏 - Swift UI

我的应用程序在 Swift UI 上运行,我的主页是Home(),在主页中有NavigationViewNavigationLink(destination: SaveThePlanet()),我在主页“主页”上隐藏了导航视图,它也隐藏在SaveThePlanet(). 如何取消隐藏SaveThePlanet()页面中的导航返回按钮?

import SwiftUI

struct Home: View {

    @State var show = false
    @State var showSaveThePlanet = false
    var body: some View {
        NavigationView {
            ZStack {
                Color.gray
                ContentView()
                    .blur(radius: show ? 10 : 0)
                    .scaleEffect(show ? 0.90 : 1)
                    .blur(radius: showSaveThePlanet ? 10 : 0)
                    .scaleEffect(showSaveThePlanet ? 0.90 : 1)
                    .animation(.default)

                leftIcon(show: $show)
                    .offset(x: 0, y: showSaveThePlanet ? 300 : 70)
                    .scaleEffect(show ? 0.90 : …
Run Code Online (Sandbox Code Playgroud)

ios13 swiftui

4
推荐指数
2
解决办法
3640
查看次数

在 Python 3 中使用 tkinter 更改单选按钮的背景颜色

我使用 ttk 在 Python 3 中使用 ttk 向 GUI 添加了一些单选按钮,但它们周围有一个白色方块,与 GUI 其余部分的蓝色背景不匹配。

我已经尝试过background= ...foreground= ...bg= ...fg= ...以及 中的其他一些事情 ttk.Radiobutton()。它适用于标签和其他东西......我错过了什么?

tkinter colors radio-button ttk python-3.x

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

实例成员不能用于类类型?

我正在尝试name从继承自 Person 的 Indicator 类访问变量。但是,我相信我没有正确进行初始化。

我得到以下信息:“错误:实例成员“名称”不能用于“指标”类型。

class Person {
    var name: String

    init(myName: String){
        self.name = myName
    }

    deinit {
        Indicator.letKnowPersonDeinitialized()
    }
}


class Indicator: Person {
    convenience init() {
        self.init()
    }

    static func letKnowPersonDeinitialized() {
        print("\(name)")
    }
}
Run Code Online (Sandbox Code Playgroud)

init swift

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

标签 统计

swiftui ×4

swift ×2

colors ×1

combine ×1

core-data ×1

init ×1

ios ×1

ios13 ×1

iphone ×1

python-3.x ×1

radio-button ×1

tkinter ×1

ttk ×1

xcode ×1