に変換できません取得します:スウィフト3の変換は「INT1割り込み」私がコンパイルされ、スウィフト3に実行され、次のエラーを取得していますスウィフト2のコードに変換しています「ブール」
isUpdated = sharedInstance.database!.executeUpdate(
"UPDATE Coin_Table SET upgrade=?, grade=?, WHERE coin_id=?",
withArgumentsInArray: [
coinInfo.upgrade, (coinInfo.grade != nil) ? coinInfo.grade! : NSNull(),
coinID])
私のコードabovをコンパイルする場合、上記
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments;
としてFMDB.hで定義された方法とFMDBを使用しているコードeは "(coinInfo.grade!="にフラグを立ててエラーを返します。
、私はそれがまだどうなるかどうかを確認するために、それを簡素化しようとした:
let theArray: NSArray = [true ? "foo" : NSNull()]
をし、まだ同じエラーを取得し、今回もフラグ「真」。
私はこの上の検索の束をやったとhttps://bugs.swift.org/browse/SR-2372以外の近いものを発見していないが、それは私が私のコードに影響を与えるとは思わないだろうタプルの問題です。
は、誰もがこの上でいくつかの光を当てるか、それはコンパイラのバグがある場合、回避策を提案することはできますか?
おかげ
'Builtint.Int1'は' Bool'構造体の内部表現( '構造体の_value'プロパティです)このタイプがエラー/警告メッセージでポップアップすることは、一般的にコンパイラからの意図しない動作を指していることを示します。あなたがリンクするバグレポートは、一種のもこの動作を説明するかのように、コンパイラは三項演算の結果の型を推論することはできません>思えません。例えば。明示的に(代わりにコンパイラを信頼する) 'NSString'インスタンスを初期化するために文字列リテラルを使用すると、(:NSArrayの= [真NSStringの(文字列:? "foo" という):nsnullを()]' 'theArrayを聞かせて)エラーを回避します。 – dfri
コメントありがとうございます。私は実際に私はこの方法が私のために少し扱いにくいされているだろうので、私は同じ行に複数の挿入を持っていたとして、私の質問を投稿するために使用した実際のコードを簡素化していました。下の一時的なヴァルスのアプローチで行きました。 – KevinR