gpt4 book ai didi

ios - 如何将一对多关系对象分配给变量?

转载 作者:行者123 更新时间:2023-11-30 13:45:05 26 4
gpt4 key购买 nike

对令人困惑且可能不准确的标题表示歉意。

无论如何,我有两个 CoreData 实体。列表和评论。一个列表可以有多个注释,因此实体模型反射(reflect)了这一点。

extension Listing {

@NSManaged var listingTitle: String?
@NSManaged var comments: NSSet?
}

extension Comment {

@NSManaged var comment: String?
@NSManaged var commentId: String?
@NSManaged var rating: Int32
@NSManaged var username: String?
@NSManaged var listing: Listing?

}

在应用程序中的某个时刻,我想用注释填充 UITableView,但这样做有点困难。

var listing: Listing?

override func viewDidLoad() {
super.viewDidLoad()

//I assumed I could do this
var comments: [Comment] = [Comment]()
comments = listings?.comments // This throws an error saying NSSET cant be assigned to type [Comment]

有人可以指导我完成我在这里想做的事情的正确方法吗?我可以看到这个问题与以下事实有关:在 Listing 实体中,注释被定义为未定义类型的 NSSet,因此我可能无法将该 NSSet 直接分配给 Comment 数组。

谢谢!

最佳答案

您可以访问上面的列表 -> 评论,如下所示。

override func viewDidLoad() {
super.viewDidLoad()

var listing = Listing()

//Assign listing coredata object according to your values and save it.


//Fetch above listing comments in array format and use it according to your requirement.

var listingComments:Array = listing.comments!.allObjects
let commentFirst:Comment = listingComments[0] as! Comment
print(commentFirst.commentId)
print(commentFirst.comment)
print(commentFirst.rating)
print(commentFirst.username)
}

listingComments类似于你声明的变量'var comments:[Comment]',你不需要显式地写[Comment],你可以通过它的allObjects属性访问NSSet对象并将其分配给Array对象。

关于ios - 如何将一对多关系对象分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35056757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com