2016-09-07 12 views
10

Mam prosty czat z czatami i wiadomościami z typowymi relacjami.Jak poprawić właściwość Predykat pobraną przez właściwość DataData dla słabej relacji Czat i wiadomości?

Czat jednostka posiada właściwości chatId - typ Integer

jednostka Wiadomość mają właściwość chatId - typ Integer

W podmiotu czatu i stworzył własność idącą (messagesFP) z proste (chyba) orzeczenie

chatId == $FETCH_SOURCE.chatId 

enter image description here

mam rozmawiać z id = 1, a wiadomości, które nieruchomość chatId = 1.

Ale messagesFP - zwraca pustą tablicę.

Jeśli zmienić orzeczenie do

chatId == 1 

Więc messagesFP powrotu prawidłowych wiadomości.

Jak napisać poprawny predykat, aby pobrać wiadomości do bieżącego czatu?

+0

Pytanie jest zbyt szerokie. –

+0

Dlaczego? Podaj link do przykładu. –

+0

Nie udostępniłeś swojego kodu. –

Odpowiedz

2

Jeśli $ FETCH_SOURCE wskazuje na koniec na NSManagedObjectID, możesz spróbować użyć poniższej kategorii, aby to poprawić.

Oto doskonałe odniesienie w Core Data Programming Guide.

Jest to jedna z tych wygodnych metod, które powinniśmy zapewnić programistom po naszej stronie. W swoim projekcie zastąp some_moc kontekstem obiektu zarządzanego.

@implementation NSManagedObjectID (FetchSource) 

- (id) valueForUndefinedKey:(NSString *)key { 

    //Attempt to unwrap the underlying object from the moc 
    NSManagedObject *mocObject = [some_moc objectWithID:self]; 

    return [object valueForKey:key]; 
} 

@end 

Mam nadzieję, że to rozwiązanie dla Ciebie!