菜鸟教程小白 发表于 2022-12-13 05:59:57

ios - 用于删除孤立对象的 RestKit NSFetchRequest block


                                            <p><p>我在我的 .com 域上托管了一个 Rest api,它在收到这样的 www.mydomain.com/api/lists 请求时将返回如下所示的 json 格式数据</p>

<pre><code>[
    {&#34;list_id&#34;:&#34;1&#34;,&#34;listName&#34;:&#34;List Name 1&#34;},
    {&#34;list_id&#34;:&#34;2&#34;,&#34;listName&#34;:&#34;List Name 2&#34;},
    {&#34;list_id&#34;:&#34;5&#34;,&#34;listName&#34;:&#34;List Name 3&#34;},
    {&#34;list_id&#34;:&#34;7&#34;,&#34;listName&#34;:&#34;List Name 4&#34;},
    {&#34;list_id&#34;:&#34;8&#34;,&#34;listName&#34;:&#34;List Name 5&#34;},
    {&#34;list_id&#34;:&#34;11&#34;,&#34;listName&#34;:&#34;List Name 6&#34;},
    {&#34;list_id&#34;:&#34;12&#34;,&#34;listName&#34;:&#34;List Name 7&#34;}
]
</code></pre>

<p>现在我在我的 RKObjectManger 中添加一个 NSFetchRequestblock 以使用此代码检查孤立对象</p>

<pre><code>[objectManager addFetchRequestBlock:^NSFetchRequest *(NSURL *URL) {
      RKPathMatcher *pathMatcher = ;

      NSDictionary *argsDict = nil;
      BOOL match = tokenizeQueryStrings:NO   parsedArguments:&amp;argsDict];
      NSString *listID;
      if (match)
      {
            listID = ;
            NSLog(@&#34;The listID is %@&#34;,listID);
            NSFetchRequest *fetchRequest = [ init];
            NSEntityDescription *entity = [NSEntityDescription entityForName:@&#34;List&#34;
                                                      inManagedObjectContext:managedObjectStore.persistentStoreManagedObjectContext];
            ;
            fetchRequest.predicate = )];
            return fetchRequest;
      }

      return nil;
    }];
</code></pre>

<p>但我的 <code>listID = ;</code> 返回 nil,尽管从 web 返回的 json 中包含“list_id”。请指导我这里出了什么问题。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你不能这样做:</p>

<pre><code>listID = ;
NSLog(@&#34;The listID is %@&#34;,listID);
</code></pre>

<p>因为路径模式 <code>/api/lists</code> 中没有 <code>list_id</code> 参数。因此,如果缺少此数据,您的谓词将始终检查错误的 <code>listID</code>。</p>

<p>但是,你不需要这些。假设请求从服务器返回所有对象——你应该使用 fetchblock 的唯一时间——那么你不需要谓词。只需为实体创建一个获取请求并返回它而不使用任何谓词。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 用于删除孤立对象的 RestKit NSFetchRequestblock ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21232402/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21232402/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 用于删除孤立对象的 RestKit NSFetchRequest block