为什么我不能在iOS中将字典的值添加到数组中?

3

我想从字典中获取键和值,并尝试将它们添加到一个数组中。但是我遇到了一个空指针异常。

 var denominationValues:[String]! -----> Array Declaraion
 for (denomination,productId) in tariffPackageDetailsArray[indexPath.row].tariffPlanDenominationAndProductId!
 {
    denominationValues.append(productId)
  }

如果我打印这些值,我会得到正确的值。但为什么我不能将它添加到数组中?我做错了什么吗?请有人帮帮我……提前致谢。
4个回答

5

该数组已经声明但未初始化

var denominationValues = [String]()

4

你没有为刚声明的数组分配内存空间

 var denominationValues = [String]()

或者您可以使用

 var denominationValues: [String] = []

1
你可以使用标准库中的高阶转换函数map(_:)。该函数遍历集合并访问每个元素,并将你的转换应用于它,然后返回一个由转换结果组成的新集合。请注意保留HTML标签。
var denominationValues = tariffPackageDetailsArray[indexPath.row].tariffPlanDenominationAndProductId?.map { $0.value }

1
请阅读《如何回答》主题。由于您的答案涵盖了问题,因此值得解释细节。 - Aleksey Potapov

0

如果您需要添加一些值,那么数组应该被声明并初始化。

var array = [Int]() // Declaring and initializing in one line

var array: [Int]? // Declaring array
array = [Int]() //initializing array

只声明数组而不初始化,仅在将数组值本身分配给您声明的数组时起作用。

var array: [Int]?
var array1 = [1, 2, 3, 4]
array = array1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接