首页 > 解决方案 > 检查数组是否为零

问题描述

我有一个自定义模型的数组,我想检查它是否不是 nil 并且它的大小是否大于 0。

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

var listCountries : [Countries]? = nil

现在在 viewDIdLoad 中,我想对其进行检查。我是斯威夫特的新手。我在使用 Java 方面有很好的经验。

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

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

if(listCountries != null && listCountries.size()>0){
    //DO something 
}

所以总结一下我的问题:

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

请帮忙。我知道已经以不同的方式提出了这个问题。但这有一些不同的背景。

标签: iosarraysswift

解决方案


只需使用??.

if !(listCountries ?? []).isEmpty {

但是,由于您可能想listCountriesif块中使用,您应该展开

if let listCountries = self.listCountries, !listCountries.isEmpty {

理想情况下,如果nil和空对您来说意味着相同,甚至不要使用可选项:

var listCountries: [Countries] = []

推荐阅读