इस सवाल का पहले से ही एक उत्तर है: < / P>
- 4 जवाब
मैं Webservice इस हेक्साडेसिमल
और NSData में बदलने की कोशिश कर रहा है और UIImageView सेट लेकिन यह काम नहीं करता है
यहाँ मेरा कोड है: < पूर्व>
एनएसडीटा * डेटा इमेज = [ऐप डिएलिगेट हेक्स्ट स्ट्रिंगटॉडाटा: अवतार। अवतार]; [ImageView सेट छवि: [UIImage imageWithData: dataImage]]; - (एनएसडीटा *) हेक्सस्ट्राइंगटोडडाटा: (एनएसएसटीइंग *) एस्ट्रिंग {NSString * command = aString; कमांड = [कमांड रीलिंग ओकुर्रेंसओफ़स्ट्रिंग: ["स्ट्रिंग के साथ" "स्ट्रिंग: @" "]; NSMutableData * commandToSend = [[NSMutableData alloc] init]; अहस्ताक्षरित चार पूरे_बाइट; चार बाइट_चार्स [3] = {'\ 0', '\ 0', '\ 0'}; Int i; के लिए (i = 0; i & lt; [आदेश लम्बाई] / 2; i ++) {बाइट_चर्स [0] = [कमांड एटएंडएक्स: i * 2]; बाइट_चर्स [1] = [कमांड एटएंडएक्स: आई * 2 + 1]; Whole_byte = strtol (बाइट_कर्स, नल, 16); [CommandToSend appendBytes: & amp; पूरे_byte लंबाई: 1]; } NSLog (@ "% @", कमांडटोसेंड); वापसी आदेश; }के लिए (i = 0; i & lt; 8 ; आई ++) {"काम नहीं करता" बहुत अस्पष्ट है मेरी पहली छाप यह है कि आप केवल पहले 16 बाइट्स (दो बाइट्स प्रति पुनरावृत्ति) देख रहे हैं, इसलिए आप स्पष्ट रूप से इनपुट स्ट्रिंग से मेल खाने वाले डेटा का एक हिस्सा नहीं प्राप्त कर सकते हैं। ऐसा लगता है कि आपको
for लूप को प्रबंधित करने के लिए स्ट्रिंग की लंबाई का उपयोग करना चाहिए इसके अलावा, यदि स्ट्रिंग में वर्णों की एक अजीब संख्या है, तो आपका कोड हेक्स स्ट्रिंग के लिए एक0 वर्ण को प्रभावी ढंग से जोड़ देगा।जो कुछ भी आपके कोड को काम नहीं कर रहा है, उसके अलावा, आप भी बदलने के लिए एक अलग दृष्टिकोण पर विचार कर सकते हैं उदाहरण के लिए, आप एक 256-वर्ण लुकअप तालिका बना सकते हैं जो हेक्स अंक, यानी 0..9, ए..एफ, और ए..एफ के अनुरूप अक्षरों को छोड़कर कुछ अमान्य मान (-1) से भरा हुआ है। तालिका में उन अक्षरों के अनुरूप स्थितियों में मान हेक्स अंकों का मान होता है, इसलिए
a औरa के सूचकांक में10 उदाहरण। यह केवल विशिष्ट एकल-बाइट वर्ण एन्कोडिंग जैसे एएससीआईआई के लिए काम करेगा, लेकिन यह इस मामले में गंभीर प्रतिबंध नहीं है। प्रत्येक हेक्स अंक के मूल्य को शीघ्रता से खोजने के लिए लुकअप तालिका का उपयोग करें, और फिर उन बाइट्स को बाइट्स बनाने के लिए उन मानों का उपयोग करें।
No comments:
Post a Comment