这个报错是在我写swift的FFDB时候遇到的,因为在做swift版的时候,考虑到SQL语句层是通用的,所以打算抽象出来复用在Perfect上,选择用结构体和协议的方式去做,在使用结构体的时候,发现会报错,用类是不会报这个错的。原因是这样:
结构体中,func不可以改变self本身的成员变量,如果修改本身的成员变量,需要在func前加上mutating
关键字
加上了mutating
之后本以为已经可以了,然后调这方法看看,报错来了,大概意思是不可以在一个不可变的值使用可以的成员,函数返回的是一个不可变的值,所以问题就出在函数的返回值
然后我改成这样就可以了,也不需要mutating
修饰
func into(_ tableClass:FFDataBaseModel.Type) -> Insert {
var insert = self
insert.sqlStatement?.append(" INSERT INTO " + tableClass.tableName())
return insert
}
请保持转载后文章内容的完整,以及文章出处。本人保留所有版权相关权利。