की सामग्री प्राप्त करने के लिए कनेक्टिविटी, इंटरनेट या अन्यथा सामग्री नहीं है, तो मैं issue को हल करने का प्रयास कर रहा हूं, जहां फ़ीड पार्सिंग फ्रेमवर्क (FeedKit) क्रैश हो तो क्रैश हो निर्दिष्ट यूआरएल की सामग्री प्राप्त करने के लिए कोई कनेक्टिविटी नहीं है (उदाहरण के लिए ऐप ऑफ़लाइन है)।XMLParser का सबक्लास सामग्री के साथ क्रैश होता है अगर यूआरएल
तो, यह तब काम करता है जब ऐप ऑनलाइन होता है, और केवल ऑनलाइन।
जब भी मैं सुपर क्लास की सुविधा प्रारंभकर्ता XMLParser
convenience init?(contentsOf url: URL)
ढांचे दुर्घटनाओं के साथ मेरी Parser
वर्ग का दृष्टांत का प्रयास करें:
क्रम कोशिश करते हैं और समस्या को अलग करने के लिए, और ढांचे में पेश की गई कुछ त्रुटि को छोड़ दें, मैंने इस मुद्दे को एक स्वच्छ परियोजना में फिर से बनाया है:
एक समाधान है कि एक आकर्षण की तरह काम करता है, फाउंडेशन ढांचे के एक सादे वेनिला XMLParser का उपयोग कर:
let feedURL = URL(string: "http://images.apple.com/main/rss/hotnews/hotnews.rss")!
if let parser = XMLParser(contentsOf: feedURL) { // Works as expected
print("Got instance \(parser)")
}
और एक और है कि नहीं करता है:
class Parser: XMLParser { }
let feedURL = URL(string: "http://images.apple.com/main/rss/hotnews/hotnews.rss")!
if let parser = Parser(contentsOf: feedURL) { // Crash!
print("Got instance \(parser)")
}
दूसरे उदाहरण में, सब मैं कर रहा हूँ कर XMLParser
वर्ग subclassing है। कोई ओवरराइड या कस्टम कोड जो भी हो। और यह अभी भी दुर्घटनाग्रस्त है।
क्या मुझे कुछ याद आ रही है?
धन्यवाद
संपादित करें:
इस मुद्दे पर संख्या 28,904,764 के साथ एप्पल के लिए एक बग रिपोर्ट प्रस्तुत और एक Radar खोला।
मुझे विश्वास है कि यह ऐप्पल के अंत में एक बग है, लेकिन गलत होना पसंद करेंगे और एक फिक्स होगा।
मूल मुद्दे https://github.com/nmdias/FeedKit/issues/4 में एक अस्थायी समाधान के रूप में पहले से ही इस दृष्टिकोण का सुझाव दिया है।मैं ढांचे में प्रारंभकर्ता का एक कस्टम कार्यान्वयन प्रदान नहीं करना चाहता, क्योंकि यह सुपर की init के उद्देश्य को हरा देता है। इस बीच, ऐप्पल से क्रैश लॉग मांगने का जवाब मिला। अधिक प्रतिक्रिया प्राप्त करते समय अपडेट होगा। – nmdias
@nmdias वैसे भी आप एक प्रश्न पोस्ट करके क्या जानने की कोशिश कर रहे थे? एक वैकल्पिक समाधान? –
किसी समस्या का समाधान। मुझे लगता है कि एक कामकाज जितना अच्छा होगा उतना अच्छा होगा। मैं आपका जवाब स्वीकार करूंगा। – nmdias