2

配列から、特定の基準を満たすすべてのアイテムを保持する新しい可変配列を作成したいと考えています。それは問題ではありません。問題は、配列が空かどうかを確認することです。

   if (!theDates]) {/*do something*/}

可変配列が作成されたため、関係なく正に戻ります。しかし

    if (![theDates objectAtIndex:0]) 
    {
        /* nothing got added to the array, so account for that */
    } 
    else 
    {
        /* do something with the array */
    }

クラッシュします。

4

6 に答える 6

1

を使用し[theDates count] > 0ます。存在しない可能性のある要素にアクセスしているため、空の場合はクラッシュします。

于 2013-08-06T02:53:07.373 に答える
0

if (theDates != nil){ if (theDates.count > 0){ 'do something' } }

これはnull配列をチェックしてから、nullpointerexceptionの発生を防ぐ空の配列をチェックする必要があります

于 2013-08-06T02:59:44.727 に答える
0

または、配列が空の場合に nil を返す lastObject メソッドを使用することもできます

if (![theDates lastObject]) { do something }
于 2013-08-06T04:48:25.647 に答える
0
if( (theDates!=nil) && (theDates.count > 0))
{
  //We have and existing array and something in there..
}
于 2013-08-06T05:00:02.170 に答える