मैं इसे वर्तमान में देख रहा हूं
expr self.attributedText = [(NSAttributedString *)([NSAttributedString alloc]) initWithString:@""];
error: <user expression 24>:1:75: no known method '-initWithString:'; cast the message send to the method's return type
self.attributedText = [(NSAttributedString *)([NSAttributedString alloc]) initWithString:@""];
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
एनएसएसटींग काम करते समय:
(lldb) expr str = [(NSString *)([NSString alloc]) init];
(__NSCFConstantString *) $92 = 0x00007fff8098cd68 @""
2 जवाब
केवल यह बताना कि NSAttributedString
, NSString
का एक्सटेंशन/या इनहेरिट नहीं किया गया है, इसके बजाय इसमें स्ट्रिंग नामक एक संपत्ति है।
और यदि आपको कलाकारों की आवश्यकता नहीं है तो आप पैरांथेसिस से बच सकते हैं।
(lldp) expr str = [[NSAttributedString alloc] initWithString:@""];
बस काम करना चाहिए
आप आमतौर पर डिबगर में फाउंडेशन मॉड्यूल को आयात करके अभिव्यक्ति पार्सर में इस तरह की फाउंडेशन विधियों को डालने की आवश्यकता से बच सकते हैं।
यदि आप "मॉड्यूल आयात" फ़ॉर्म का उपयोग करके अपना कोड बनाते हैं:
import Foundation;
और .o फ़ाइल बनाते समय -fmodules
पास करना (इसके लिए एक Xcode सेटिंग भी है) तब डिबग जानकारी रिकॉर्ड करती है कि आपका कोड फाउंडेशन मॉड्यूल आयात करता है, और lldb स्वचालित रूप से उसे आयात करेगा।
यदि आप मॉड्यूल फॉर्म का उपयोग नहीं करते हैं, तब भी आप मॉड्यूल को आयात करने के लिए एलएलडीबी प्राप्त कर सकते हैं:
(lldb) expr @import Foundation
उन चीजों में से किसी एक को करते हुए, मैं आपकी अभिव्यक्ति w/o अतिरिक्त कास्टिंग चला सकता हूं।