为什么Int不可变?

时间:2016-06-26 10:19:36

标签: ios swift

我有一个NSDictionary,其中有一个由整数组成的数组,我试图在某个索引处更改一个整数。我通过Cannot assign to immutable expression of type Int

收到此错误
var avafdg = object["Availability"] as? NSDictionary //I am importing the Dictionary from Parse, and it is imported correctly.
avafdg![0]![12] as! Int = 1 // I get the error here

1 个答案:

答案 0 :(得分:1)

您无法分配运算符[]的结果。当您编写

时,Dictionary的下标avafdg![123] = 456 运算符很棘手
x+5 = 6 // <<== Will not compile

Swift知道调用update方法来处理这个赋值。但是,一旦进行演员表演,就不再可以进行作业。事实上,它已经没有意义了,因为相同的原因,例如,对一个加法运算的结果的赋值将毫无意义:

Int

幸运的是,您无需转换为Int以便将新的NSMutableDictionary存储到词典中。你需要告诉Swift,第一个间接返回的内容也是var innerDictionary = avafdg![0] as NSMutableDictionary! innerDictionary[12] = 1 *

NSMutableDictionary

* 我假设它是NSMutableArray,但也可能是{{1}},具体取决于您拥有的数据结构。