为什么我不能在iOS中将字典中的值附加到数组中?
我试图从字典中获取键和值,并试图将它们添加到数组中。但是我得到了一个空指针异常为什么我不能在iOS中将字典中的值附加到数组中?,ios,arrays,swift,dictionary,null,Ios,Arrays,Swift,Dictionary,Null,我试图从字典中获取键和值,并试图将它们添加到数组中。但是我得到了一个空指针异常 var denominationValues:[String]! -----> Array Declaraion for (denomination,productId) in tariffPackageDetailsArray[indexPath.row].tariffPlanDenominationAndProductId! { denominationValues.append(produc
var denominationValues:[String]! -----> Array Declaraion
for (denomination,productId) in tariffPackageDetailsArray[indexPath.row].tariffPlanDenominationAndProductId!
{
denominationValues.append(productId)
}
如果我打印这些值,我会得到正确的值。但是为什么我不能将其添加到数组中呢?我犯了什么错误?任何人请帮助我…提前谢谢。数组已声明但未初始化
var denominationValues = [String]()
您没有为刚刚声明的数组分配内存
var denominationValues = [String]()
或者你可以用
var denominationValues: [String] = []
您可以使用标准库中名为
map(:)
的高阶转换函数。此函数循环遍历一个集合,并提供对每个元素的访问权,并对其应用转换,然后返回一个新集合,其中包含转换后的元素
var denominationValues = tariffPackageDetailsArray[indexPath.row].tariffPlanDenominationAndProductId?.map { $0.value }
如果需要附加一些值,则应该声明和初始化数组
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
请阅读主题。既然你的答案涵盖了这个问题,那么就值得解释一下细节。