これらのコードは同等ですか?Objective-CとSwift ArrayとNOT演算子の比較
オブジェクティブC:
if !someArray {
// do something
}
スウィフト:
if someArray.isEmpty {
// do something
}
これらのコードは同等ですか?Objective-CとSwift ArrayとNOT演算子の比較
オブジェクティブC:
if !someArray {
// do something
}
スウィフト:
if someArray.isEmpty {
// do something
}
これらは異なっています。
Objective-Cコードは、配列が存在するかどうかをチェックします。つまり、配列がnil
であるかどうかをチェックします。
Swiftコードは、配列が空であるかどうかをチェックします。
スウィフトアレイがnil
ではありません、あなたはこの使用できることを確認するために:(0 == [カウントsomeArray]場合(!someArrayが) `Objective-Cで`と異なる場合
if someArray != nil {
print("The array is not nil")
}
Swiftには簡略版がありますか?または、私はそれを前に無制限でないことを確認するために、素早くアレイをアンラップする必要がありますか? –
あなたの質問に答えるために自分のコードを更新しました。 –
私は「「Any型」の非オプション値をnilに比較すると常にtrueを返す」という警告が出ます。 –
someArray
のように定義されると仮定すると:
NSArray *someArray = @[@1, @2, @3];
ポインタがほとんどであり、ゼロではないこと、次いでif !someArray {
チェックポインターがでないことを普遍的にチェックする。配列の数を保証するものではありません。
を ' ) 'が、それはあなたが何をしたいか/チェックしたいかによって異なります。 – Larme
これは役に立ちます!ありがとう! –
ちなみに、nil配列の場合、 '[someArray count]'は0を返します。しかし、非nil配列は0カウントを持つこともできますし、言語自体はnil配列と空を区別するよう強く強制しませんアレイ。 Swiftでは空の配列とnil配列を区別する必要があります。 – zneak