मैंने स्विफ्ट के साथ काम करने के तरीके के बारे में कुछ परीक्षण किए हैं, परिणाम मुझे आश्चर्यचकित कर रहे हैं। ObjC ऑब्जेक्ट्स के साथ po
debugDescription
पर कॉल करता है जो डिफ़ॉल्ट रूप से description
पर कॉल करता है। यह स्पष्ट है। दुर्भाग्यवश स्विफ्ट कक्षाओं के साथ काम करते समय भी लागू नहीं होता है। मैंने एकल चर मुद्रण के बजाय वस्तुओं पर ध्यान केंद्रित किया।
इसे काम करने के लिए (po
lldb
में कमांड) मुझे विवरण ओवरराइड करना पड़ा। नीचे दिए गए कोड मैं परीक्षण के लिए इस्तेमाल किया:
class Test : NSObject
{
var name : String?
var surname : String?
override var debugDescription : String{
return "debugDescription method"
}
override var description : String {
return "description Method"
}
}
परीक्षण:
let test = Test()
test.name = "name"
test.surname = "surname"
(lldb) po test
description Method
(lldb) p test
(DebugTest.Test) $R1 = 0x00007fce11404860 {
ObjectiveC.NSObject = {
isa = DebugTest.Test
}
name = "name"
surname = "surname"
}
(lldb) po dump(test)
▿ DebugTest.Test #0
- super: debugDescription method
▿ name: name
- Some: name
▿ surname: surname
- Some: surname
description Method
(lldb) po print(test)
description Method
बात यह है कि हैरान कर मुझे उस po
स्विफ्ट वस्तुओं पर कॉल description
बजाय debugDescription
कि ObjC से अलग है।
संपादित
यह ObjC के साथ जैसा व्यवहार करने के लिए, आपका वर्ग CustomDebugStringConvertible लागू करने के लिए और फिर po
debugDescription
फोन करेगा, जो डिफ़ॉल्ट रूप से कहता है description
।केवल एक चीज है जो मेरे उदाहरण में परिवर्तित करना जोड़ने की जाएगी:
class Test : NSObject, CustomDebugStringConvertible
Reference
XCode 7.0.1
और iOS SDK 9
साथ की जाँच की, Swift 2.0
स्रोत
2015-10-21 08:34:13
हाँ, स्विफ्ट में डिबगिंग वर्तमान में 'println' पर निर्भर है। – Jack
मेरे पास एक समान डीबगर त्रुटि थी जो 'चलो' स्थिरांक का निरीक्षण करने की कोशिश करते समय ही हुई थी; इसके बारे में मेरा प्रश्न देखें [यहां] (http://stackoverflow.com/questions/26189424/how-to-view-value-of-swift-let-constant-in-xcode-6-debugger) - यह निकला एक्सकोड 6 में एक बग बनें। –
कंपाइलर टीम के व्यक्ति (ओं) से इन समस्याओं को प्रदर्शित करने वाले कोड नमूने/परियोजनाओं के लिए एक कॉल प्रतीत होता है: https://devforums.apple.com/message/1106278#1106278। उस कारण में किसी भी योगदान की निश्चित रूप से सभी की सराहना की जाएगी (और निश्चित रूप से एक मजेदार-अच्छा साथी होगा) –