检查数组是否为零

And*_*eem -2 arrays ios swift

我有一个自定义模型的数组,我想检查它是否为零,其大小大于0.

以下是我的自定义对象数组

var listCountries : [Countries]? = nil

现在在viewDIdLoad中我想对它进行检查.我是Swift的新手.我有很好的Java工作经验.

我已经读出了可选值概念和保护,如果让语句.但我无法理解它们的使用效率.我读了太多SO问题,但未能弄明白.

例如,如果我想检查java中的上部给定数组,我只需要这样做

if(listCountries != null && listCountries.size()>0){
    //DO something 
}
Run Code Online (Sandbox Code Playgroud)

总结一下我的问题:

  1. 如何使上层给定(Java代码)签入swift 4.?什么是更顺畅和可靠的方式.
  2. 如果let,guard,guard let语句有什么用呢?如果我声明一个变量(数组,字符串)作为可选项,我必须承担可选的检查,如强制包装每个地方.这对我来说太混乱了.

请帮忙.我知道这个问题有不同的问题.但这有一些不同的背景.

Sul*_*han 6

只是用??.

if !(listCountries ?? []).isEmpty {
Run Code Online (Sandbox Code Playgroud)

但是,由于您可能希望listCountriesif块中使用,因此您应该打开包装

if let listCountries = self.listCountries, !listCountries.isEmpty {
Run Code Online (Sandbox Code Playgroud)

理想情况下,if nil和empty对您来说意味着相同,甚至不使用可选:

var listCountries: [Countries] = []
Run Code Online (Sandbox Code Playgroud)


Fog*_*ter 5

我会做类似的事情...

if let list = listCountries, !list.isEmpty { // Can also use list.count > 0
    // do something
}
Run Code Online (Sandbox Code Playgroud)

即使您没有使用list大括号内部,您仍然在条件中使用列表。

或者,就像 Sulthan 所说......如果没有什么区别,那么从一开始就将其设为非可选。