Closed DeftMKJ closed 5 years ago
LKModel里面关联了rowid,每次插入和查询后,会给model设置一个rowid属性,例如插入的时候会有这段话model.rowid = (NSInteger)lastInsertRowId;,但是Demo里面为什么会把已有的模型属性设置为0 test2.rowid = 0; BOOL ishas = [globalHelper isExistsModel:test2]; 从而让下面这段代码进入else分支,求解释啊,这样直接去掉rowid属性就好了,直接用主键去设置where就好了吧 if (model.rowid > 0) { [deleteSQL appendFormat:@"rowid = %ld", (long)model.rowid]; } else { NSString *pwhere = [self primaryKeyWhereSQLWithModel:model addPValues:parsArray];
if (pwhere.length == 0) { LKErrorLog(@"delete fail : %@ primary value is nil", NSStringFromClass(modelClass)); return NO; } [deleteSQL appendString:pwhere]; }
demo 只是懒得构建一个新 model。 直接 rowid 赋值为0 ,内部有优先级,有 rowid 就用 rowid,没有采用主键。应该给 rowid 只读属性的,但是懒的改了
我发了个邮件给你163邮箱,你看下,交个朋友
LKModel里面关联了rowid,每次插入和查询后,会给model设置一个rowid属性,例如插入的时候会有这段话model.rowid = (NSInteger)lastInsertRowId;,但是Demo里面为什么会把已有的模型属性设置为0 test2.rowid = 0; BOOL ishas = [globalHelper isExistsModel:test2]; 从而让下面这段代码进入else分支,求解释啊,这样直接去掉rowid属性就好了,直接用主键去设置where就好了吧 if (model.rowid > 0) { [deleteSQL appendFormat:@"rowid = %ld", (long)model.rowid]; } else { NSString *pwhere = [self primaryKeyWhereSQLWithModel:model addPValues:parsArray];