【发布时间】:2021-08-01 01:13:15
【问题描述】:
我有两个解析类,它们之间有关系:
class FeedPost:PFObject, PFSubclassing {
@NSManaged var likedBy:PFRelation<PFUser>
static func parseClassName() -> String {
return "FeedPost"
}
}
extension PFUser {
@NSManaged var likedPosts:PFRelation<FeedPost>
}
当用户喜欢具有以下代码的帖子时,我正在尝试在两个对象之间创建关系:
if let currentUser = PFUser.current() {
let likeQuery = post.likedBy.query()
likeQuery.findObjectsInBackground { (users, error) in
if let users = users {
if !users.contains(where: {$0.objectId == currentUser.objectId}) {
post.likeCount += 1
post.likedBy.add(currentUser)
currentUser.likedPosts.add(post)
ParseNetworkQuery.shared.bulkSaveObjects(objects: [currentUser,post]) { (done) in
}
}
}
}
}
当我运行此代码时,我收到以下错误:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
错误指向 PFRelation.m 文件中的以下行,特别是 dispatch_sync 行:
- (void)_addKnownObject:(PFObject *)object {
dispatch_sync(_stateAccessQueue, ^{
[self.state.knownObjects addObject:object];
});
}
我已经尝试在数据浏览器中将关系“预添加”到两个类。完成后会发生错误。如果我删除数据浏览器中的关系,并让代码在运行时自行生成它们,则不会发生任何事情。未创建列,并且“likeQuery”永远不会执行。我究竟做错了什么?谢谢!
【问题讨论】:
-
likeCount 更新了吗?
-
不,这两种情况都没有。
标签: swift parse-platform