2016-10-03 8 views
16

में वैराडिक फ़ंक्शन अनुपलब्ध है, मैं तेज़ी से नया हूं। जब मैं सिर्फ मूल बातें सीख रहा हूँ मैं NSLog'एनएसएलओजी' अनुपलब्ध है: स्विफ्ट

यहाँ पर यह त्रुटि आई मेरी कोड है:

import UIKit 

class ViewController: UIViewController { 

    var myString: NSString? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     myString = "himanth" 
     print(myString) 
     NSLog("%@" , myString) 
     // Do any additional ssetup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

मैं इस

var myString: NSString! 

तरह myString घोषणा कर रहा हूँ तो यह NSLog उपयोग करने के लिए ठीक है और मैं कंसोल भी देख सकता हूं।

लेकिन इस के कारण समस्या

var myString: NSString? 

यह दर्शाता है की तरह स्ट्रिंग की घोषणा NSLog पर और त्रुटि दिखा।

इसके साथ समस्या क्या है?

उत्तर

14

यदि आप var myString: NSString? को वैकल्पिक के रूप में घोषित करते हैं तो आपको यह सुनिश्चित करने की आवश्यकता है कि इसे NSLog पर पास करने से पहले इसका मूल्य हो।

तो आप इसे NSLog("%@" , myString!) पर ऐसा कर सकते हैं। यदि myString नहीं के बराबर है और आप ! डाल कार्यक्रम दुर्घटना होगा और आप

fatal error: unexpectedly found nil while unwrapping an Optional value. 

मिल जाएगा लेकिन कार्यक्रम सामान्य रूप से चलते और

2016-10-03 10:26:25.077 Swift3.0[65214:1579363] Test 

प्रिंट आउट मैं myString = "Test" लिखा था अगर यह एक मूल्य है।

+1

'NSLog ("% @ ", myString ??" "का उपयोग करने के लिए बेहतर" निश्चित रूप से? – Grimxn

+0

यह बिल्कुल एक वैकल्पिक @Grimxn है –

5

NSLog() स्विफ्ट विकल्प प्रिंट नहीं कर सकते हैं।

let optional: String? 
NSLog("%@", optional) // 'NSLog' is unavailable: Variadic function is unavailable 

let nonOptional: String 
NSLog("%@", nonOptional) // Ok! 

NSLog("%@", optional ?? "value-if-nil") // Ok! 

इसके बजाय NSLog() पर गैर-वैकल्पिक मान पास करके ठीक करें।

संबंधित मुद्दे