菜鸟教程小白 发表于 2022-12-12 15:40:53

ios - 如何使用 NSPredicate 和 CloudKit 获取特定用户的最新帖子?


                                            <p><p>假设我在 iCloud 中有以下模型:</p>

<pre><code> ___________         ___________
| Users   |&lt;-_    | Posts   |
|-----------|   |   |-----------|
| firstName |   |   | text      |
| lastName|   --- | user      |
-----------         -----------
</code></pre>

<p>我需要获取特定 <code>user</code> 引用的最新 <code>Posts</code>。</p>

<p>目前我正在使用这样的谓词:</p>

<pre><code>let userRefs: = [...]
let predicate = NSPredicate(format: &#34;%K IN %@ AND creationDate &gt;= %@&#34;, &#34;user&#34;, userRefs, NSDate.twentyFourHoursAgo)

let query = CKQuery(recordType: &#34;Posts&#34;, predicate: predicate)
query.sortDescriptors =
</code></pre>

<p>但它为我提供了过去 24 小时内的所有用户 <code>Posts</code>。有没有办法为<strong>每个</strong>提供的用户引用仅获取一个最新的帖子?</p>

<p>期望的结果是特定用户(例如 )的最新 <code>Posts</code> 数组:</p>

<pre><code>[
    Post&lt;text, user1&gt;
    Post&lt;text, user2&gt;
    Post&lt;text, user3&gt;
]
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您想检索除默认记录之外的其他记录数(通常最多 100 条),请使用 CKQueryOperation 并设置 .resultsLimit</p>

<p>在您的情况下,您可以在仅为 1 个用户执行查询时将其设置为 1。 </p>

<p>使用 CloudKit 无法执行您实际想要执行的查询,因为您需要某种聚合查询。不支持聚合查询。因此,解决此问题的唯一方法是为每个用户执行查询以获取其最新帖子。 </p>

<p>但是,有一个可行的解决方法。我以前做过类似的事情。当用户添加新帖子时,您还可以更新用户数据并将最新帖子添加到用户 recrodType。你会有一些重复的数据,但你可以通过查询用户来获得所有最新的帖子。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何使用 NSPredicate 和 CloudKit 获取特定用户的最新帖子?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/31109534/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/31109534/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何使用 NSPredicate 和 CloudKit 获取特定用户的最新帖子?