菜鸟教程小白 发表于 2022-12-12 22:58:01

objective-c - 使用获取的请求排序描述符


                                            <p><p>我的排序描述符有问题。我正在获取一个足球俱乐部的排名。这就是我的网络服务返回数据的方式。</p>

<pre><code>&#34;ranking&#34;: [

    {
      &#34;type&#34;: &#34;competitie&#34;,
      &#34;position&#34;: &#34;1&#34;,
      &#34;name&#34;: &#34;Club Brugge&#34;,
      &#34;gamesPlayed&#34;: &#34;10&#34;,
      &#34;gamesWon&#34;: &#34;6&#34;,
      &#34;gamesTied&#34;: &#34;4&#34;,
      &#34;gamesLost&#34;: &#34;0&#34;,
      &#34;goalsPos&#34;: &#34;25&#34;,
      &#34;goalsNeg&#34;: &#34;12&#34;,
      &#34;goalsDiff&#34;: 13,
      &#34;points&#34;: &#34;22&#34;
    }
</code></pre>

<p>这是我的获取请求。</p>

<pre><code>- (void)getKlassement // attaches an NSFetchRequest to this UITableViewController
{
    NSFetchRequest *request = ;
    request.sortDescriptors = ];

    self.fetchedResultsController = [ initWithFetchRequest:request
                                                                        managedObjectContext:self.genkDatabase.managedObjectContext
                                                                        sectionNameKeyPath:nil
                                                                                 cacheName:nil];

}
</code></pre>

<p>现在排名如下。 1,11,12,13,14,2,3,4,5...
我认为问题在于我的网络服务中的位置是一个字符串。我的排序描述符将其视为一个字符串。但实际上它应该将其视为一个整数。有人知道我该怎么做吗?</p>

<p>提前致谢。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>即使“位置”是作为来自您的 Web 服务的字符串提供的,最好的解决方案是将其存储为核心数据模型中的数字(“整数 32”或类似的)。对象对应的属性是<code>NSNumber</code>,它会被正确排序。</p>

<p>如果你真的不能这样做,你可以<em>作为一种解决方法</em>尝试使用 <code>localizedStandardCompare</code> 作为比较函数。我认为这会根据数值对包含数字的字符串进行排序。</p>

<pre><code>[NSSortDescriptor sortDescriptorWithKey:@&#34;position&#34; ascending:YES
    selector:@selector(localizedStandardCompare:)]
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 使用获取的请求排序描述符,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12782997/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12782997/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 使用获取的请求排序描述符