Kev*_*inR 13 ios swift3 xcode8
我正在转换编译并运行到Swift 3的Swift 2代码,我收到以下错误:
'Int1'不能转换为'Bool'
代码如下:
isUpdated = sharedInstance.database!.executeUpdate(
"UPDATE Coin_Table SET upgrade=?, grade=?, WHERE coin_id=?",
withArgumentsInArray: [
coinInfo.upgrade, (coinInfo.grade != nil) ? coinInfo.grade! : NSNull(),
coinID])
Run Code Online (Sandbox Code Playgroud)
上面的代码使用FMDB和FMDB.h中定义的方法
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments;
Run Code Online (Sandbox Code Playgroud)
编译上面的代码时,它标记"(coinInfo.grade!="并给出错误.
我尝试简化它以查看它是否仍会发生:
let theArray: NSArray = [true ? "foo" : NSNull()]
Run Code Online (Sandbox Code Playgroud)
并且仍然得到相同的错误,这次它标记"真实".
我已经对此进行了大量搜索,并且除了https://bugs.swift.org/browse/SR-2372之外没有找到任何其他内容,但这是元组问题,我认为这不会影响我的码.
任何人都可以对此有所了解或建议一个解决方法,如果它是一个编译器错误?
谢谢
正如您自己写的那样,您的问题与此处描述的问题相同。错误发生))
为什么不直接使用临时变量来修复它:
let hasGrade: Any = (coinInfo.grade != nil) ? coinInfo.grade! : NSNull()
isUpdated = sharedInstance.database!.executeUpdate(
"UPDATE Coin_Table SET upgrade=?, grade=?, WHERE coin_id=?",
withArgumentsInArray: [
coinInfo.upgrade, hasGrade,
coinID])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5403 次 |
| 最近记录: |