2014-06-10 6 views
23

सरल प्रश्न - स्विफ्ट का उपयोग करते समय एक्सकोड की घड़ी विंडो में चर के मूल्यों को आप कैसे देख सकते हैं?स्विफ्ट: एक्सकोड की घड़ी विंडो में प्रदर्शित चर के मानों को कैसे देखें?

यहां एक उदाहरण है, देखें कि एमडीएन के पास मूल्य 2067134273 है, फिर भी घड़ी विंडो में यह देखने के लिए संभव नहीं है (ObjectiveC.NSObject कुछ भी विस्तार नहीं करता है)।

enter image description here

मैंने सोचा था कि इस तथ्य के कारण हो सकता है कि इसके एक वैकल्पिक, लेकिन इसकी है कि सरल नहीं है क्योंकि onss के प्रदर्शन के रूप में जो "वैकल्पिक NSString", प्रदर्शित किया जाता है पर देखो इसके कि देखने के लिए संभव है और यह एक एनएसएसटींग है, जबकि एनएसएस जो एक गैर वैकल्पिक एनएसएसटींग है उसका मूल्य प्रदर्शित नहीं होता है।

यहाँ उनकी घोषणाओं है:

var nss:NSString = "NSString" 
var ss = "Swift string" 
var onss:NSString? = "Optional NSString" 

तो जब XCode साथ डिबगिंग कैसे MDN और एनएसएस के मूल्यों देखी जा सकती है, और अधिमानतः स्वचालित रूप से प्रदर्शित करने के लिए बनाया जा कंसोल का उपयोग किए बिना?

enter image description here

फिर भी आप कुछ तृतीय-पक्ष रूपरेखा है कि आप परिवर्तन नहीं कर सकते से भी कुछ अन्य प्रकार के लिए विवरण देखने के लिए आवश्यकता हो सकती है यदि:

+0

'expr -l ObjC की तरह कुछ कोशिश - mdn' –

+0

कंसोल इसे पसंद नहीं करता है, यह कहता है कि एमडीएन एक अविकसित पहचानकर्ता है (हालांकि पीओ एमडीएन ठीक है, लेकिन इसकी सामग्री प्रदर्शित नहीं करता है)। वैसे भी स्विफ्ट एक कदम आगे है, लेकिन इसके मूल्यों को प्रदर्शित करने के लिए टाइप करना एक कदम पीछे आईएमओ है। – Gruntcakes

+0

मैं कहता हूं कि यह lldb में एक बग है, यह 'NSString' प्रिंट करने के लिए स्मार्ट नहीं है। 'expr -l objc - (id) (0x POINTER_VALUE)' –

उत्तर

8

Xcode 6 बीटा 4 NSString? प्रकार NSString के चरों के मान और पता चलता तो आप debugQuickLookObject विधि को कार्यान्वित कर सकते हैं और कस्टम विवरण वापस कर सकते हैं। तीसरे पक्ष के lib के मामले में आपको इसे विस्तार में लपेटना चाहिए। NSString के लिए यह हो जाएगा:

extension NSString { 
    func debugQuickLookObject() -> AnyObject { 
     return self 
     // return "Here is debug value: \(self)" 
    } 
} 

यह पूर्वावलोकन करने के लिए, बस घड़ी विंडो में आइटम का चयन करें और spacebar मारा:

enter image description here

+0

आपको एनिमेटेड gif कैसे मिला? बहुत अच्छा। – 4thSpace

+1

ऐप को LICEcap कहा जाता है। यह मुफ़्त है, आप इसे http://www.cockos.com/licecap/ – Keenle

+0

पर डाउनलोड कर सकते हैं यह एक अच्छा जवाब है। यह बुरा है कि .NET ऐप्स के लिए विजुअल स्टूडियो में एक रनटाइम डीबग टूल [इंटरमीडिएट विंडो] (https://msdn.microsoft.com/en-us/library/f177hahy.aspx) नहीं है। इससे जीवन 10x आसान हो जाएगा। –

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