我有一個核心數據模型,包含三個實體:事務,場合,人員以及當前我在事務實體中獲取時,我得到「NULL」作爲數據庫中的值。讓我解釋。通過使用核心數據通過關係獲取屬性的值 - 當前傳遞NULL
交易是在我的情況下,與Person和Occasion有關係的實體。個人實體具有名稱屬性和與交易實體的關係。交易(Person Entity)< ------ >> whoBy(交易實體)。
從類別屬性(場合實體)< ---------------- >> event(Transaction Entity)也有關係。
我在這個應用程序的基本階段。我有一個表視圖控制器,當你按下加號按鈕時,你會被要求在模態視圖中添加名稱和場合。最終,兩者都將顯示在表視圖中,其名稱是單元格的主文本,並且是副標題。
當我將用戶插入的值直接添加到表示name屬性的Person實體時,它起作用,我在Table View中看到了這一點。同樣的情況也會發生(與Person分開)。但是,當我直接將數據添加到事務實體並使用fetchRequest來實現這一點時,每次按save以傳遞該值並返回到表視圖時,我都會顯示(NULL)。
我AddEntryVC有這樣的保存按鈕方法:
NSManagedObject *newEntry = [NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:context];
[newEntry setValue:self.nameTextField.text forKeyPath:@"whoBy.name"];
表視圖,我有:
//有NSMutableArray的屬性稱爲交易持有交易 NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@「Transaction」]; self.transactions = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
//在cellForRowAtIndexPath中 NSManagedObject * transaction = [self.transactions objectAtIndex:indexPath.row];
[cell.textLabel setText:[NSString stringWithFormat:@"%@", [transaction valueForKeyPath:@"whoBy.name"]]];
當我運行這一點,有沒有錯誤/警告,當我添加一個條目,我看到(NULL)作爲保存的結果。當我運行相同的代碼時,只需將Transaction直接修改爲Person,包括MutableArray,它就可以工作。
所以我幾乎在那裏......但真的很感謝任何幫助。我覺得whoBy.name的關係不起作用。因爲這是一種關係。我無法想象我必須去設置Person.name屬性;它應該只與交易一起工作?
我還試圖找取請求下面謂詞:
fetchRequest.predicate = [NSPredicate predicateWithFormat:@ 「whoBy.name =%@」,self.personTransaction.name];
..其中personTransaction是一個@property(nonatomic,strong)Person * personTransaction屬性,它具有相同的結果。
在此先感謝
這就是輝煌的Arkadiusz - 這是非常有用的,它的工作完全。這個鏈接的確非常有用。再次感謝! – amitsbajaj