मैं परिवर्तित कर रहा हूँ स्विफ्ट 2 कोड है कि संकलित करता है तथा स्विफ्ट से 3 चलाता है और निम्न त्रुटि हो रही है: इस प्रकारस्विफ्ट 3 रूपांतरण हो जाता है 'int1' के लिए परिवर्तनीय नहीं है 'बूल'
'Int1' is not convertible to 'Bool'
कोड है :
isUpdated = sharedInstance.database!.executeUpdate(
"UPDATE Coin_Table SET upgrade=?, grade=?, WHERE coin_id=?",
withArgumentsInArray: [
coinInfo.upgrade, (coinInfo.grade != nil) ? coinInfo.grade! : NSNull(),
coinID])
कोड ऊपर
- (BOOL)executeUpdate:(NSString*)sql withArgumentsInArray:(NSArray *)arguments;
के रूप में विधि FMDB.h में परिभाषित साथ FMDB उपयोग कर रहा है जब मेरे कोड abov संकलन ई यह झंडे "(coinInfo.grade! =" और त्रुटि देता है।
मैं अगर यह अभी भी क्या होगा देखने के लिए यह सरल बनाने की कोशिश की:
let theArray: NSArray = [true ? "foo" : NSNull()]
और अब भी वही त्रुटि, इस बार यह झंडे "सच" मिलता है।
मैं इस पर खोजों के एक झुंड किया है और https://bugs.swift.org/browse/SR-2372 से करीब कुछ भी अन्य नहीं मिला है लेकिन यह है कि tuples जो मुझे लगता है कि मेरी कोड को प्रभावित करेगा नहीं होता के साथ एक मुद्दा है।
क्या कोई इस पर कुछ प्रकाश डाल सकता है या अगर यह एक कंपाइलर बग है तो वर्कअराउंड का सुझाव दे सकता है?
धन्यवाद
'' Builtint.Int1' Bool' struct के आंतरिक प्रतिनिधित्व ('struct के _value' संपत्ति है) , और यह कि एक त्रुटि/चेतावनी संदेश में पॉप अप करता है आम तौर पर संकलक से गैर-इच्छित व्यवहार को इंगित करता है। ऐसा लगता है जैसे आप जिस बग रिपोर्ट को लिंक करते हैं, वह इस व्यवहार को भी समझाता है> कंपाइलर टर्नरी ऑपरेशन के परिणाम के प्रकार का अनुमान नहीं लगा सकता है। जैसे स्पष्ट रूप से 'एनएसएसटींग' इंस्टेंस को प्रारंभ करने के लिए स्ट्रिंग शाब्दिक का उपयोग करके (कंपाइलर पर भरोसा करने के बजाए) त्रुटि को बाधित करेगा (' अरे: NSArray = [true? NSString (string: "foo"): NSNull()] ')। – dfri
टिप्पणी के लिए धन्यवाद। मैंने वास्तव में मेरे प्रश्न को पोस्ट करने के लिए उपयोग किए जाने वाले वास्तविक कोड को सरल बना दिया था क्योंकि मेरे पास एक ही पंक्ति पर एकाधिक प्रविष्टियां थीं, इसलिए यह विधि मेरे लिए थोड़ा कमजोर होती। नीचे temp vars दृष्टिकोण के साथ गया था। – KevinR