- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 SwiftUI 的新手,部分是 Swift,所以希望有人能对我明显缺少的东西有所了解。原谅乱码!我还没有机会重构。
我正在使用 @FetchRequest
属性包装器拉出所有列表 Memories
从 CoreData
回来模型,带 NSFetchRequest<Memory>
在其上定义的方法,从 NSManagedObject
扩展.
当我遍历 FetchRequest<Memory>
的结果时在 SwiftUI 中通过 ForEach
,它返回一个 NSManagedObject
的实例进入循环变量而不是 Memory
,从而显示错误:Value of type 'NSManagedObject' has no member 'createdAt'
对于以下 SwiftUI 类:
import SwiftUI
struct MemoryView: View {
@Environment(
\.managedObjectContext
) var managedObjectContext
@FetchRequest(
fetchRequest: Memory.allMemories()
) var allMemories: FetchedResults<Memory>
@State private var newMemory = ""
var body: some View {
NavigationView {
List {
Section(header: Text("What's on your mind?")) {
HStack {
TextField("New memory", text: self.$newMemory)
Button(action: {
let memory = Memory(context: self.managedObjectContext)
memory.title = self.newMemory
memory.createdAt = Date()
do {
try self.managedObjectContext.save()
} catch {
print(error)
}
self.newMemory = ""
}) {
Image(systemName: "plus.circle.fill")
.foregroundColor(.green)
.imageScale(.large)
}
}
}
.font(.headline)
Section(header: Text("My Memories")) {
ForEach(self.allMemories) { memoryItem in
MemoryRow(title: memoryItem.title, createdAt: memoryItem.createdAt)
// /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\
// >>> Error:
// >>> Value of type 'NSManagedObject' has no member 'createdAt'
}
}
}
.navigationBarTitle(Text("Memories"))
.navigationBarItems(trailing: EditButton())
}
}
}
struct MemoryView_Previews: PreviewProvider {
static var previews: some View {
MemoryView()
}
}
Memory
有问题的模型如下:
import Foundation
import CoreData
import CoreLocation
// Define the CoreData Object Model.
// Ensuring that this class name matches
// the entity model name.
public class Memory: NSManagedObject, Identifiable {
@NSManaged public var title: String?
@NSManaged public var body: String?
@NSManaged public var latitude: Double
@NSManaged public var longitude: Double
@NSManaged public var createdAt: Date?
@NSManaged public var updatedAt: Date?
// @NSManaged public var type: Type?
// @NSManaged public var tags: [Tags]?
}
// Create an extension in which to place things out of the context
// of the initial class declaration within.
extension Memory {
// Define a helper method for accessing a generated
// CLLocationCoordinate2D instance from the objects
// latitude and longitude values.
var locationCoordinate: CLLocationCoordinate2D {
CLLocationCoordinate2D(
latitude: latitude,
longitude: longitude
)
}
// Define a helper method that grabs all instances of a Memory
// sorted by their created date in ascending order.
static func allMemories() -> NSFetchRequest<Memory> {
let request: NSFetchRequest<Memory> = Memory.fetchRequest() as! NSFetchRequest<Memory>
let sortDescriptor = NSSortDescriptor(key: "createdAt", ascending: true)
request.sortDescriptors = [sortDescriptor]
return request
}
}
MemoryRow
类(class):
import SwiftUI
struct MemoryRow: View {
var title: String = ""
var createdAt: String = ""
var body: some View {
HStack {
VStack(alignment: .leading) {
Text(title)
.font(.headline)
Text(createdAt)
.font(.caption)
}
}
}
}
struct MemoryRow_Previews: PreviewProvider {
static var previews: some View {
MemoryRow(title: "Test Title", createdAt: "Test Date")
}
}
最佳答案
就我而言,这是因为 optional
当我们在数据模型中添加属性时默认选择的数据类型,因此在 NSManagedObjectClass
它看起来像这样@NSManaged public var name: String?
当然,要解决这个问题,可以删除 ?
从上面一行或使用 ??
使用该属性时的 nil 合并运算符,例如 ClassName.name ?? "Unknown"
根据给出的答案和评论,我在类里面检查了我的属性名称是否有任何错字,然后我意识到了这个问题。现在必须处理 SwiftUI
的这种行为它不会显示实际错误或将显示在任何其他行上。🤯
希望这可以帮助像我这样的人。
关于SwiftUI: ForEach of FetchedResults 给出错误 - "Value of type ' NSManagedObject' has no member ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59061270/
我们有一个包含重复用户记录的数据库,我需要根据几个因素选择“最佳”用户: 应先选择具有成员(member)资格的用户,然后再选择没有成员(member)资格的用户 成员(member)有级别,在所有条
不知道为什么 Visual Studio 发出此警告: Access of shared member, constant member, enum member or nested type thr
我有一个数据库设置来注册网站的成员(member)专用区域的成员(member)。我可以使用复选框回显所有注册成员,以便我可以选择从管理页面删除单个成员,但我似乎无法弄清楚如何在单击提交按钮时选择删除
假定前缀一元运算符可以“由不带参数的非静态成员函数或带一个参数的非成员函数实现”(§13.5.1[over.unary]/1),除了适用于任何成员/非成员函数选择的通常封装/代码重用设计原理之外,还有
拥有 struct Person { string name; }; Person* p = ... 假设没有运算符被重载。 哪个更有效(如果有的话)? (*p).name 对比 p->name
进程文件: members-area or members-area.exe 进程名称: 5-1-61-96 进程类别:存在安全风险的进程 英文描述: 
引用资料 http://msdn.microsoft.com/en-us/library/6tc47t75%28v=VS.80%29.aspx http://msdn.microsoft.com/en
这个问题在这里已经有了答案: Is there any reason to use this-> (16 个答案) 关闭 7 年前。 这有什么区别: int MyClass::getId() {
我正在制作一个网站,您需要在其中注册,然后创建一个角色来玩。我如何将注册页面中使用的表格与玩家的表格结合起来,以便玩家始终获得他创建的角色。 我有一个表members,用于存储注册用户以及角色的 ta
我处于困境中,我被委托(delegate)创建一个 PHP Web 应用程序,该应用程序允许一个人注册,然后该用户可以再注册 5 个其他用户,他注册的其他用户也可以每个注册 5 个成员。 我希望创建数
我试图在成员(member)页面上显示一个非常简单的用户名。我已经在 stackoverflow 上搜索过,但使用我发现的内容不起作用。 我使用 HTML 表单指南中非常常见的注册/登录脚本,该脚本使
我正在使用CodeIgniter,我的问题是关于MySQL查询。我有两个表,分别是成员和关系。 成员表 我正在做的是,根据member_type将所有用户添加到成员表中。如果 member_type
我有一个表,用于存储 2 个成员(成员 A 和成员 B)之间的聊天信息。现在,当成员 A 删除他的消息时,我会抛出这样的 sql 请求 $deleting = mysqli_query($connec
from bs4 import BeautifulSoup import requests r = requests.get('http://medicalassociation.in/doctor-
我有两个我无法修改的类,它们都具有完全相同的成员: class Pose1 { public: double x,y; }; class Pose2 { public: d
我正在测试服务器上运行机器人。当前 channel 中有 3 个成员(member_count of 3),但它只返回一个成员。该成员是机器人。 代码: import discord from dis
我有一个对象,我们称之为 o,以及对 o 的引用。 在o范围内,我设置了一个成员,我们称之为m。 所以在 o 中,我调用: o.m = "blah" 在 o 之外,我访问 m: console.log
我正在尝试实现自定义成员(member)资格提供程序并希望更改 GetUser 方法。问题是 GetUser 返回 MembershipUser,而我想返回 MyMembershipUser,它有两个
我的网站有一个推荐给 friend 的按钮。为了鼓励人们使用此功能,我想用积分奖励那些使用它的人(积分将兑换奖品......还不知道)。 好的,所以我有这样的结构: 表单.php 您可以在此处输入 f
我在 MySQL 中有三个表, 组(键:group_id) 成员(键:member_id) group_member_relations 键:group_id, member_id 最后一个表包含 m
我是一名优秀的程序员,十分优秀!