سؤال

آسف إذا كان هذا السؤال أوليًا، ولكنني كنت عالقًا في هذا الخطأ خلال اليومين الماضيين ولم أتمكن من تجاوزه.أنا أستخدم Xcode 4.3.2

أحاول تحميل بنك الاستثمار القومي المسمى AController.xib بطريقة تسمى "- (عملية باطلة)" في الملف المسمى BController.m

للتوضيح، قمت بنسخ ./A/AController.xib (وهو UIView)، ./A/AController.m، ./A/AController.h إلى الدليل ./B

أذكر هذا فقط لأنني لست متأكدًا مما إذا كان يهم سؤالي.

حاليًا، يعمل التدفق الخاص بي كتدفقات (والتي قد تكون مشكلتي):

  • يتم تحميل العرض باستخدام زر "شراء".
  • يقوم المستخدم بالنقر فوق الزر "شراء" الذي يحتوي على IBOutlet المسمى "buyNow"
  • "buyNow" يستدعي "buy"، والذي يستدعي بعد ذلك "process"
  • تحاول العملية بعد ذلك تحميل السن بما يلي (الخيار 1):

    وحدة تحكم * بلاه؛لـ (كائن معرف في الحزمة) {if ([Object IskindofClass: [acontroller class]]) blah = (acontroller *) object ؛} تأكيد (بلاه! = nil && "لا يمكن أن يكون blah nil") ؛[self.view addSubView:بلا]؛

الخطأ الذي أحصل عليه هنا هو "الموضوع 1:إشارة SIGABRT "في Main.m لقد جربت أيضًا (الخيار 2) ،

AController *myView = [[AController alloc] initWithFrame:self.view.bounds];
[self.view addSubview:myView];
[AController release];

و (الخيار 3)

AController * vc = [[AController alloc] initWithNibBundle:@"AController" bundle:nil];    [self.nc pushViewController:vc animated:NO];

أحصل على نفس الخطأ لجميع الخيارات الثلاثة.تمت تجربة كل خيار في طريقة "العملية"."العملية" مكتوبة في B.m.هل يمكن لأي شخص أن يقدم بعض المساعدة حتى أتمكن من معرفة ذلك؟أي إرشادات حول سبب فشل هذه الخيارات ستكون مفيدة جدًا لفهمي وستكون موضع تقدير كبير.شكرا لمساعدة مستجد!

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

المحلول

لو AController هو UIView فئة فرعية، لا يمكنها تحميل NIB.التحقق من أنه في الواقع وحدة تحكم، ولكن من initWithFrame والطريقة التي تضيفها بها إلى طريقة العرض، تبدو وكأنها ليست كذلك، أو يتم التعامل معها بشكل غير صحيح.

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