- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Xcode 7 beta 4
我有来自 Parse.com 的 Poem
类。在我的 Parse User
类中,我有列 likedPoem
,它与类 Poem
我的 Poem
类中只有一条记录。我之前将其添加到代码中的 likedPoem
中:
let query = PFQuery(className:"Poem")
query.getObjectInBackgroundWithId(poemParseObjectId!) {
(poem: PFObject?, error: NSError?) -> Void in
if error == nil && poem != nil {
let user = PFUser.currentUser()
let relation = user!.relationForKey("likedPoem")
relation.addObject(poem!)
user!.saveInBackground()
}
}
我可以在解析数据浏览器中看到它
现在我想检查当前用户是否喜欢我正在展示的这首诗:
let user = PFUser.currentUser()
let relation: PFRelation = user!.relationForKey("likedPoem")
let query = relation.query()!
query.whereKey("likedPoem", equalTo: poem!)
query.getFirstObjectInBackgroundWithBlock {
(poem1: PFObject?, error: NSError?) -> Void in
print(poem1)
}
它打印nil
如果我更改它以检查该列中的内容:
<...>
//query.whereKey("likedPoem", equalTo: poem!)
query.getFirstObjectInBackgroundWithBlock {
(poem1: PFObject?, error: NSError?) -> Void in
print(poem1!)
print(poem!)
}
我可以看到 poem1!
是 not nil
并且它实际上具有与 poem!
相同的属性值
问题:为什么query.whereKey("likedPoem", equalTo:诗歌!)
返回我nil
?
最佳答案
欢迎来到 stackoverflow!
我想我发现了您的代码的问题。 likedPoem
是解析表中的关系列。您使用 relationForKey
正确检索它,但检索它后,查询约束不正确。您不能对此列施加约束,因为该列是一个关系。认为它有一个 Poem
类的子集。您现在正在查询 Poem
类的子集,并且对查询施加的任何约束都必须与 Poem
类中的列相关。
因此,对于您想要执行的操作,请删除 query.whereKey("likedPoem", equalTo:诗歌!)
约束,并根据您正在显示的诗歌对象检查结果。
现在,这只有效,因为您有一个 Poem
对象,并且您正在调用 query.getFirstObjectInBackgroundWithBlock
。将来(如果用户喜欢更多诗歌),您将不得不稍微修改一下并将其更改为 query.findObjectsInBackgroundWithBlock
以便您可以检索所有喜欢的诗歌的数组,然后您可以检查显示的诗是否在该数组中。
顺便说一句,我在很多应用程序中使用了解析,并且我了解到关系并不总是最好使用的东西,当您使用它们时,弄清楚将它们放在哪个类中可能会很棘手来优化您的查询。这就是为什么在确定应用程序的架构之前应始终牢记您的查询。您可以通过以下一些其他方法来完成您想做的事情:
query.whereKey("objectId", equalTo:诗歌!.objectId)
。这将检查关系中所有诗歌对象的 objectId,并将其与所显示诗歌的 objectId 进行比较。现在,您可以使用 countObjectsInBackgroundWithBlock
而不是检索对象。从技术上讲,您不需要检索所有诗歌(因为您已经拥有了想要的一首诗),您只是想知道它是否在关系中,因此 count
可以完美地做到这一点。<Poem
对象的 Array
,因为有时可以更轻松地检查其中是否包含您的对象。Poem
类。现在,它将是喜欢这首诗的用户的关系/数组,它完成同样的事情,但这完全取决于您的偏好,以及它是否适用于您的所有查询(查找所有用户喜欢的诗,查找用户谁喜欢一首诗,看看有多少人喜欢这首诗)祝你好运!
关于ios - query.whereKey 对于关系返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31632980/
这是我的代码: func loadData() { data.removeAllObjects() isLiking.removeAll(keepCapacity: true)
我正在尝试选取等于特定日期并匹配特定值的所有对象,但我不确定如何做到这一点。我需要获取日期包含 10 或更高的对象,因此在本例中它将拾取该对象,因为其中一个或两个的数字大于 10。 这是“数字”列,其
var limitlocation = 5 as Double if let usergeo = currentuser.objectForKey("location") as? PFGeoPoint
我有一个解析对象,已保存到 LDS,我想通过 1 个键和另一个键下的条目来搜索它。 关键:这很好。 checkQuery.whereKeyExists("File-rZVgZNpNuB") 包含的 k
我正在尝试创建一个查询,在其中可以检查指向的对象的值是否满足特定要求。示例我有一个名为 rooms 的类,每个 room 对象都有一个指向 post 对象的指针。我想在获取房间时检查帖子对象的 whe
Xcode 7 beta 4 我有来自 Parse.com 的 Poem 类。在我的 Parse User 类中,我有列 likedPoem ,它与类 Poem 相关 我的 Poem 类中只有一条记录
所以我想检查 Parse 中的一个类并检查以下内容: var query = PFQuery(className:"Score") query.whereKey("playerName", equal
我有一个名为“Question”的 Parse 类和一个名为“quizid”的 Number 类型的列。 在 xcode swift 类中,我有一个类型为 Int quiz_id 的变量。 我有一个继
在用户删除表格单元格后,我尝试删除 Parse 中的数据源。它工作得很好,因为我测试了不同的 .whereKey 方法,但我似乎无法弄清楚使用哪一个来找到实际删除的对象。我当前在下面列出的内容返回错误
我在 Parse 中有一个名为 GarageSale 的类,它有一个名为 User 的指针列。我正在尝试访问User对象的房屋地址列。 这是我在代码中尝试执行的操作: let radius = PFU
我有一个名为 Book 的 Parse 类。其中有一列 pageNumber。 我想查询每个页码的最新对象。可以有多个对象具有相同的 pageNumber,这就是为什么我只想查询 pageNumber
在我的 PFUser 类中,每个用户都有一个名为 twitterId 的 key ,其中包含他们的推特 ID。在我从 Twitter 获得 currentUser 的好友列表后,我无法通过 Parse
我有一个 tableView,我正在其中从 Parse 加载我的数据。现在我想使用 parse 来显示来自 searchBar.text 的搜索结果。我有名字和姓氏,我都想在其中搜索。问题是我不知道如
目前,我有一个Game 类表,其中包含一个名为currentTurnPlayer 的属性。对于查询,我有兴趣获取所有 game 对象,其中 currentTurnPlayer 的名称不等于我的 sel
在 Parse 的“Message”表中,我有一个名为 conversation 的字段,它是一个指向 Conversation 的指针(另一个表我的数据库)。 要查询消息,我可以这样做吗:
有没有一种简单的方法可以删除满足特定条件(例如“UserID”=用户)的特定类(即消息)中的所有对象,以便我的消息类中与特定用户关联的所有行都将被删除? 最佳答案 试试这个, PFQuery *qu
我知道使用 parse 有一个 PFQuery 限制,您一次只能检索 1000 个对象。我认为它不会,但这是否也限制了可以执行的 whereKey 比较的数量。例如 var query = PFQue
是否可以在包含对象键的 PFQuery 上运行 whereKey?假设我想获取所有当前分数高于之前分数的用户?像这样: query.whereKey("score", greaterThan: ?pr
我在 Friendship 类中使用 fromUser 和 toUser 键对用户友谊进行排序。当我只想返回与 currentUser 没有友谊的用户时,我想使用两个 whereKey:doesNot
我正在使用 swift 在 Xcode 中创建一个应用程序,它从解析服务器数据库(由 Heroku 托管)中提取信息。有一个方便的修改查询的方法,可以这样设置,例如: let getFollowedU
我是一名优秀的程序员,十分优秀!