Sunday 15 March 2015

ios - Efficiently parsing a CSV file from a web service (using CHSVParser) -


मेरा ऐप वर्तमान में componentsSeparatedByCharactersInSet के संयोजन का उपयोग कर वेब सेवा से CSV फ़ाइलों को पार्स कर रहा है और < कोड> घटकों से अलग किए गए पाठ स्ट्रिंग विधियां जैसा कि फ़ाइलें बहुत बड़ी हैं (& gt; 1 एमबी औसत पर), पार्सिंग को एक iPad पर कुछ सेकंड लेता है, जो बहुत धीमा है मेरे समाधान का स्मृति पदचिह्न एक मुद्दा भी है (मैं मेमोरी में पूर्ण पाठ फ़ाइल रख रहा हूं)। यही कारण है कि मैं एक तेज और अधिक स्मृति कुशल समाधान की तलाश कर रहा हूं। मैं CHCSVParser पर आया जो सीधे NSInputStreams को पार्स कर सकते हैं, उदा। <पूर्व> NSInputStream * stream = [NSInputStream इनपुटस्ट्रीमविथफाइलएटपाथ: फ़ाइल]; CHCSVParser * p = [[CHCSVParser alloc] initWithInputStream: स्ट्रीम का उपयोग किया गया एन्कोडिंग: & amp; एन्कोडिंग सीमांकक: ';'];

(नमूना परियोजना से स्रोत)

मेरा प्रश्न:

मैं NSURLRequest के परिणामस्वरूप एक NSInputStream कैसे प्राप्त कर सकता हूं? (वर्तमान में मुझे संपूर्ण सीएसवी फ़ाइल को NSData वस्तु के रूप में मिल रहा है और इसे NSString में परिवर्तित करने के लिए इसे पार्स करने के लिए)।

क्या मैं एनएसआईआईपीस्ट्रीम से सीधे NSURLRequest से CHSVParser

का उपयोग कर सकता हूं क्या आप आमतौर पर सीसीएसपीपरर्स s initWithInputStream विधि के साथ एक NSURLRequest के साथ या फिर दस्तावेज़ को मेमोरी में डाउनलोड करें और पूर्ण डाउनलोड के बाद अगर पार्स करें? < P>

फ़ाइल को डिस्क पर डाउनलोड करें NSURLConnectionDelegate और NSOutputStream (इस तरह से आप डाउनलोड करते समय संभव के रूप में छोटी सी मेमोरी के रूप में उपयोग करते हैं) और उसके बाद एक NSInputStream खोलें फाइल करें और इसे CHCSVParser में पास करें।

No comments:

Post a Comment