मैं इसे वर्तमान में देख रहा हूं

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 @""
0
Max 14 जुलाई 2020, 02:26
जैसा कि डीबगर बताता है। संदेश को वापसी प्रकार की विधि में डालें .. [(NSString*)([NSAttributedString alloc]) initWithString:@""]; लेकिन इस कोष्ठक ने भी डाला .. [(NSString *) [NSAttributedString आवंटन] initWithString: @ ""] के बारे में क्या;
 – 
Ol Sen
14 जुलाई 2020, 04:10

2 जवाब

केवल यह बताना कि NSAttributedString, NSString का एक्सटेंशन/या इनहेरिट नहीं किया गया है, इसके बजाय इसमें स्ट्रिंग नामक एक संपत्ति है।

और यदि आपको कलाकारों की आवश्यकता नहीं है तो आप पैरांथेसिस से बच सकते हैं।

(lldp) expr str = [[NSAttributedString alloc] initWithString:@""];

बस काम करना चाहिए

0
Ol Sen 14 जुलाई 2020, 04:22

आप आमतौर पर डिबगर में फाउंडेशन मॉड्यूल को आयात करके अभिव्यक्ति पार्सर में इस तरह की फाउंडेशन विधियों को डालने की आवश्यकता से बच सकते हैं।

यदि आप "मॉड्यूल आयात" फ़ॉर्म का उपयोग करके अपना कोड बनाते हैं:

import Foundation;

और .o फ़ाइल बनाते समय -fmodules पास करना (इसके लिए एक Xcode सेटिंग भी है) तब डिबग जानकारी रिकॉर्ड करती है कि आपका कोड फाउंडेशन मॉड्यूल आयात करता है, और lldb स्वचालित रूप से उसे आयात करेगा।

यदि आप मॉड्यूल फॉर्म का उपयोग नहीं करते हैं, तब भी आप मॉड्यूल को आयात करने के लिए एलएलडीबी प्राप्त कर सकते हैं:

(lldb) expr @import Foundation

उन चीजों में से किसी एक को करते हुए, मैं आपकी अभिव्यक्ति w/o अतिरिक्त कास्टिंग चला सकता हूं।

0
Jim Ingham 14 जुलाई 2020, 23:28