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

ios - 对自定义对象数组中的数字进行排序


                                            <p><p>我试过 <a href="https://stackoverflow.com/questions/13874256/sorting-number-using-nssortdescriptor" rel="noreferrer noopener nofollow">this</a> , <a href="https://stackoverflow.com/questions/25343140/how-to-sort-an-nsmutablearray-containing-numbers-as-strings-in-descending-order" rel="noreferrer noopener nofollow">this</a>和 <a href="https://stackoverflow.com/questions/15160039/bad-receiver-type-double" rel="noreferrer noopener nofollow">this</a>链接</p>

<p>我有一个数组(比如 <strong>personObjectArray</strong>),其中包含 <strong>Person</strong> 类的对象。 </p>

<p>类 <strong>Person</strong> 有 2 个变量说,
<code>NSString *name, NSString *age</code>.</p>

<p>这里 <strong>age</strong> 的类型为 nsstring。 </p>

<p>现在当我像下面这样排序时,</p>

<pre><code>personObjectArray = [[personObjectArray sortedArrayUsingComparator:^NSComparisonResult(Person *p1, Person *p2){

    return ;

}] mutableCopy];
</code></pre>

<p>是这样的,</p>

<p>1,
11,
123
2、
23,
3...它排序像字母顺序不考虑它作为一个数字。 </p>

<p>所以我像这样更改我的代码,</p>

<pre><code>personObjectArray = [[personObjectArray sortedArrayUsingComparator:^NSComparisonResult(Person *p1, Person *p2){

    return [ compare: ];

}] mutableCopy];
</code></pre>

<p>它说,<code>Bad receiver type 'int'</code></p>

<p>我现在如何排序?
请不要告诉我在 <strong>Person</strong> 类中更改 <strong>age</strong> 的数据类型。我无法改变它。任何帮助表示赞赏(:,感谢您的时间。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您在原始(非对象)类型 <code>int</code> 上使用了比较,因此它不起作用。 </p>

<p>试试这个</p>

<pre><code> return [@() compare:@()];
</code></pre>

<p>这里,我们使用 NSNumber(这是一个对象类型)来比较 int 值</p>

<blockquote>
<p>@() is a NSNumber&#39;s literal</p>
</blockquote>

<p>希望这会对你有所帮助.. (: </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 对自定义对象数组中的数字进行排序,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/42696583/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/42696583/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 对自定义对象数组中的数字进行排序