簡體   English   中英

Swift 3轉換'Int1'不能轉換為'Bool'

[英]Swift 3 conversion gets 'Int1' is not convertible to 'Bool'

我正在轉換編譯並運行到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])

上面的代碼使用FMDB和FMDB.h中定義的方法

- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments;

編譯上面的代碼時,它標記“(coinInfo.grade!=”並給出錯誤。

我嘗試簡化它以查看它是否仍會發生:

let theArray: NSArray = [true ? "foo" : NSNull()]

並且仍然得到相同的錯誤,這次它標記“真實”。

錯誤的屏幕截圖

我已經對此進行了大量搜索,並且除了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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM