سؤال

لدي وثيقة من نوع الحزمة-أي.انها حقا مجلد ، لكنه يستخدم NSFileWrapper ويتوافق مع com.apple.package لتظهر كملف-التي أريد مشاركتها عن طريق البريد الإلكتروني.لقد صنعت MFMailComposeViewController وأنا أحاول أن العمل على ما لإعطاء المعلمة الأولى من addAttachmentData:mimeType:fileName:.

تحتوي الحزمة على ملف صورة وقائمة ، على الرغم من أن ذلك قد يتغير في المستقبل.

كيف يمكنني تحويل حزمة إلى بيانات?هل هذه هي الطريقة الصحيحة للقيام بذلك?

هل كانت مفيدة؟

المحلول

كما قلت ، الحزمة هي في الواقع مجلد.يتم تفسيره على أنه حزمة فقط على أنظمة التشغيل أوسك.

على هذا النحو ، لا يمكن لبروتوكول البريد تفسيره كحزمة / كملف واحد ، ولا يرى سوى مجلد قياسي.

الطريقة الوحيدة لإرسال هذا عبر البريد الإلكتروني هي ضغط الملفات في ملف واحد.يمكنك القيام بذلك عن طريق إنشاء أرشيف مضغوط من الحزمة الخاصة بك ، أو القطران.ملف غز على سبيل المثال.

هناك حلول متعددة لإنشاء أرشيف مضغوط من التعليمات البرمجية في الكاكاو.يمكنك استخدام مكتبة ليبز ورمز ج مباشرة ، أو استخدام بعض المكتبات طرف ثالث (التي لديها بالفعل رمز عام لذلك ويساعدك على القيام بذلك أسهل باستخدام أساليب الكاكاو) ، مثل زيبارشيفي أو غيرها.

نصائح أخرى

ملفاتي ليست كبيرة ، لذلك الرمز البريدي هو مبالغة وأنا أحاول أيضا لتجنب استخدام رمز طرف ثالث.لذلك توصلت إلى نهج مختلف لإرفاق ملفات متعددة في مرفق بريد إلكتروني واحد.

أولا ، لدي بالفعل كائن نسفيلورابر الذي يحتوي على كافة الملفات التي أريد في المرفق.المفتاح هو استخدام طريقة نسفيلورابر سيرياليزدبريتاتيون للحصول على كائن نسداتا لاستخدامها لمرفق البريد الإلكتروني.أنا باستخدام 'تطبيق / ثماني تيار' ل ميميتيب.عندما أعود إلى فتح المرفق ، وأنا استخدم إنيتويثسيرياليزدبريتاتيون نسفيلورابر:طريقة للحصول على نسفيلورابر الأصلي مرة أخرى.

يعمل هذا بالنسبة لي لأنه سيتم استخدام الملف المرفق وفتحه فقط بواسطة تطبيقي.من الواضح أن هذا لن ينجح إذا كنت بحاجة إلى القيام بشيء ما مع المرفق خارج تطبيقك.في هذه الحالة ، يبدو أن الرمز البريدي سيكون الخيار المنطقي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top