iPhone Dev: كيف تقوم بطباعة النتائج من بيانات البيانات الأساسية؟

StackOverflow https://stackoverflow.com/questions/1611263

  •  05-07-2019
  •  | 
  •  

سؤال

لقد أضفت ما يلي إلى AppDelegate في مثال وصفات البيانات الأساسية ، لكنني لا أحصل على أي نتيجة مطبوعة في وحدة التحكم ... أي أفكار؟

#pragma mark -
#pragma mark TESTING RETRIEVAL OF RECIPE NAMES

- (NSArray *)allRecipes{
    NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"name" inManagedObjectContext:self.managedObjectContext];
    [request setEntity:entity];

    NSArray *result = [[NSArray alloc] init];
    result = [self.managedObjectContext executeFetchRequest:request error:NULL];    

    NSManagedObject *firstObject = [result objectAtIndex:0];
    NSLog(@"firstObject.name: %@", [firstObject valueForKey:@"name"]);

    }

Xcode يعطيني تحذيرًا بعد هذه الطريقة: "تصل التحكم إلى نهاية الوظيفة غير الفوسوية"

أعتقد أن هذا يعني أنني لا أحصل على أي نتائج ... وهو أمر واضح ، لأنه لا يوجد شيء يطبع.

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

المحلول

هل "الاسم" يتطابق تمامًا مع فئة الكيان - وليس السمة التي تريدها من الكيان - في ملف .xcdatamodel الخاص بك؟ هل تتأكد من أن أساليب الإعداد في مندوب التطبيق تكمل دون خطأ؟ هل راجعت ManagedObjectContext! = لا شيء؟ هل قمت بتحرير ملف .xcdatamodel؟ إذا كنت قد قمت بذلك منذ تشغيل البرنامج ، فأنت بحاجة إما إلى حذف ملف البيانات من دليل مستندات المحاكاة للتطبيق الخاص بك أو تحتاج إلى إضافة إصدار نموذج إلى Datamodel.

كما قال Gerry3 ، مشكلتك الأولى هي أن الوظيفة تحدد أنه يجب عليك إرجاع مجموعة ولا تعيد أي شيء.

مشكلة أخرى هي أن تجلب سمات "الاسم" للفصل ولكن بعد ذلك تستخدم "الاسم" مرة أخرى كـ valueforkey. هل لديك حقًا كيان "اسم" مع السمة "الاسم"؟ على الأرجح ، تم تسمية كيانك بشيء آخر والاسم هو سمة - وفي هذه الحالة تحتاج إلى تغيير طريقة nsentitydescription entityforname: الوسيطة.

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