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

ios - 按开始日期过滤 NSMutableArray 对象


                                            <p><p>我正在开发一个 iOS 应用程序,我有一个 NSMutableArray 对象,对象是具有开始日期和结束日期的事件。
开始日期是时间戳格式,结束日期不是。</p>

<p>我想根据用户输入的日期过滤该数组 (datePicker)。</p>

<p>现在我有这个代码,它部分工作,因为假设一个事件将从 3 月 30 日开始,到 4 月 2 日结束,如果用户输入 3 月 30 日之前的任何日期,那么该事件将出现在我的列表中(没关系)但是如果用户输入让我们说 3 月 31 日,则不会过滤相同的事件,这是错误的,因为该事件直到发生。</p>

<pre><code>if(datePickerInTimeStamp&gt;0)
    {
      //I know I might use while instead of an if
      for (EventObj *_eventObj in eventsList)
      {

            if(_eventObj.dateDebutTimeStamp&gt;0){

                if ( datePickerInTimeStamp &lt;= _eventObj.dateDebutTimeStamp)

                  ;


            }
      }
    }
</code></pre>

<p>我正在考虑将结束日期转换为时间戳并使用某种范围检查。</p>

<p>感谢您的帮助。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我不是 100% 清楚您希望过滤器过滤什么,但这里有一些建议:</p>

<ol>
<li>使用面向对象设计。教您的事件表明它们是否匹配。</li>
<li>使用 NSDate 比较方法 earlyDate: 和 laterDate:</li>
</ol>

<p>我从您的问题中猜测您想要选择在用户选择的日期发生的事件:</p>

<pre><code>// in your class EventObj.m

// answer true if date is between the event start and end
- (BOOL)isOccurringOn:(NSDate *)date {
    return ] &amp;&amp;
         ];
}
</code></pre>

<p>如果您想过滤一些其他对事件来说很自然的方式,例如开始之前、之后开始、之前结束等,这里的 BOOL 回答方法就是这样做的方法。</p>

<p>现在您的 EventObj 做了一些有意义且易于阅读的事情,并且您的循环也更漂亮了:</p>

<pre><code>// get NSDate *selectedDate from user
// using your var names, though the _underscores are strange ...

for (EventObj *_eventObj in eventsList) {
    if () {
      ;
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 按开始日期过滤 NSMutableArray 对象,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/15275988/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/15275988/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 按开始日期过滤 NSMutableArray 对象