قوالب صف مسند تم إنشاؤها تلقائيًا للمفتاح إلى Many؟

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

سؤال

في نموذج كائن البيانات الأساسي الخاص بي ، لدي كيان foo مع وجود علاقة إلى حد كبير (مع عكسي إلى حد) إلى BAZ المسمى BAZ. BAZ لديه خاصية سلسلة تسمى "TAG". عندما أستخدم [NSPredicateRowEditorTemplate templatesWithAttributeKeyPaths:[NSArray arrayWithObject:@"baz.tag"] inEntityDescription:FooDescription] لإنشاء محرري الصفوف لـ nspredicateeditor ، تحتوي النتيجة على (كما هو متوقع) قالب صف مثل

popup: baz.tag] [popup: يحتوي على | هو | ليس | ...] [Textfield

عندما أختار "يحتوي" من المنبثقة ، يعمل استعلام مع المسند كما هو متوقع. إذا اخترت أيًا من المنبثقة الأخرى (على سبيل المثال "هو") ، أحصل على الخطأ التالي: "لمفتاح إلى Many غير مسموح به هنا". هل يمكنني استخدام [NSPredicateRowEditorTemplate templatesWithAttributeKeyPaths:inEntityDescription:] أو هل يجب علي بناء محرر الصف يدويًا؟

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

المحلول

يبدو أن القالب الذي تم إنشاؤه تلقائيًا (باستخدام [NSPredicateRowEditorTemplate templatesWithAttributeKeyPaths:inEntityDescription:]) لا يمكن أن تنتج المشغلين الصحيحة. الحل هو إنشاء القالب باستخدام يدويًا [NSPredicateEditorRowTemplate initWithLeftExpressions:rightExpressionAttributeType:modifier:operators:options:]. على سبيل المثال:

id template = [[NSPredicateEditorRowTemplate initWithLeftExpressions:[NSArray arrayWithObject:[NSExpression expressionForKeyPath:@"baz.tag"]] rightExpressionAttributeType:NSStringAttributeType modifier:NSAnyPredicateModifier operators:keywordOperators options:0];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top