गैलरी से संपत्ति अपलोड करने के लिए पृष्ठभूमि हस्तांतरण का उपयोग करने का सबसे अच्छा तरीका क्या है?NSURL सत्र: पृष्ठभूमि हस्तांतरण के साथ संपत्ति अपलोड करना
uploadTaskWithRequest:fromData:
की तरह लगता है NSURLSession
backgroundSessionConfiguration
के साथ बनाया के साथ काम नहीं करता है, क्योंकि यह एक अपवाद का कारण बनता है: "न आया हुआ अपवाद 'NSGenericException', कारण की वजह से उनका समापन एप्लिकेशन: 'पृष्ठभूमि सत्रों में कार्य अपलोड एक फ़ाइल से होना चाहिए"। अपवाद विवरण पृष्ठभूमि हस्तांतरण से निर्णय स्ट्रीम किए गए अपलोड कार्यों के साथ भी काम नहीं करना चाहिए।
पर्याप्त मेला। uploadTaskWithRequest:fromFile:
पहली बात है जो दिमाग में आती है जब आप डिस्क पर पहले से मौजूद डेटा अपलोड करने के बारे में सोचते हैं। लेकिन NSURL सत्र क्लास संदर्भ हमें बताता है कि यह विधि केवल फाइल यूआरएल के साथ काम करती है, लेकिन जब आपको संपत्ति का यूआरएल पथ मिलता है तो यह "संपत्ति-पुस्तकालय: // परिसंपत्ति/..." से शुरू होता है और यह पथ प्रदान करना भी काम नहीं करता है।
तो ऐसा लगता है कि एकमात्र विकल्प शेष संपत्ति लाइब्रेरी से फ़ाइल को अस्थायी निर्देशिका में कॉपी करना है, और uploadTaskWithRequest:fromFile:
पर अपनी फ़ाइल यूआरएल प्रदान करना है। लेकिन यह कोई समझ नहीं आता है क्योंकि आपके पास पहले से ही आपकी डिस्क पर संपत्ति फ़ाइल सहेजी गई है। क्या मुझे कुछ याद आ रही है?
अद्यतन:
टेक वार्ता घटना में एप्पल इंजीनियर के साथ बात और उन्होंने पुष्टि की कि पृष्ठभूमि NSURLSession केवल फ़ाइल URL समर्थन करता है। तो वास्तव में, आपको संपत्ति लाइब्रेरी को एक अस्थायी निर्देशिका में कॉपी करने की आवश्यकता है, और इसे पृष्ठभूमि NSRLSession के साथ अपलोड करने के लिए uploadTaskWithRequest:fromFile:
पर अपनी फ़ाइल यूआरएल प्रदान करें। हालांकि यह व्यवहार भविष्य में बदल सकता है।
ठीक है, हाँ। फ़ाइल की प्रतिलिपि मूल रूप से मैं अब कर रहा हूं। Nsursession के साथ आपकी प्रगति कैसे है? –
आपका अनुमान सही प्रतीत होता है। –
@RobertGeifman तो मूल रूप से अपलोड करें TaskWithRequest: सेडेटा: काम नहीं करता है? – marciokoko