سؤال

لدي سؤال. ربما 2 أسئلة.

الأول يرتبط بهذه القطعة من التعليمات البرمجية:

giveacodicetagpre.

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

السؤال الثاني مرتبط بهذه القطعة من التعليمات البرمجية:

giveacodicetagpre.

أود أن تعيد هذه الطريقة لي nsarray مع json المحور، والتي يمكنني استخدامها أينما أردت.

ترد هذه الأساليب في نموذج يسمى NetworkModel (NSOBJECS Subclass). أنا فقط أتساءل لماذا يجب أن أفعل كل شيء داخل الكتل. يجب أن يكون لدي قطع تتفاعل مع الشبكة في كل مكان، ولا يتم تنظيمها في مكان / فئة فريدة واحدة. هل هناك طريقة للقيام بذلك. لا أريد الحصول على 5 أسطر من الطلبات كل Componcontroller. أريد تحديد الأساليب التي يمكنني الاتصال بها من أي عرض مستورد من الواضح ملفات الرأس عند الحاجة).

أي اقتراحات؟ شكرا للنصيحة!

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

المحلول

يمكنك القيام بذلك مع اقتراب 2، واحد تغيير أساليبك من أجل استخدام كتل أو استخدام إشارة لانتظار طلب ASYNC:

مع الإشارة (الطريقة القبيحة)

giveacodicetagpre.

الطريقة الصحيحة للقيام بذلك

giveacodicetagpre.

لسؤالك الثاني، يمكنك تعيين متغير كتلة على فئة الشبكات الخاصة بك سيتم استدعاؤها عند اكتمال الطلب أو فشله.

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

باستخدام متغير كتلة

giveacodicetagpre.

نصائح أخرى

سألت شيئا مشابها أثناء الظهر.أعتقد أنك ستجد الحل الخاص بك هناك. تمرير كتل إلى طريقة عمل afnet؟

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

الرابط أعلاه يجيب أيضا على سؤالك الثاني.

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


لذلك، يمكنك تغيير طريقتك إلى:

giveacodicetagpre.

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

giveacodicetagpre.

في my appdelegate.h لقد قمت بتضمين my networkmodel.h وفي appdelegate.m لدي الآن الرمز التالي:

giveacodicetagpre.

ويعمل بشكل جيد كيندا. ولكن الآن لدي سؤال آخر حول هذا الموضوع. عندما أقوم بتشغيل التطبيق، هناك شيء يحدث شيء غريب. بمجرد أن تسترجع المعلومات حول حالة تسجيل دخول المستخدم، يقفز من VC (وحدة تحكم البرامج التغذية المعينة - Start00 على لوحة قصتي المصورة) إلى VC (Loggedinvc - Startbo1 على لوحة قصتي الجديدة). هل هناك طريقة لعدم إظهار هذا القفز كيندا للمستخدم؟ أو هذا سلوك طبيعي؟ يرى المستخدم الآن لثانية الشاشة الأولى ثم الشاشة التي يجب أن يراه فعلا (تسبب تسجيل الدخول).

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

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