2014-12-04 51 views
0

我有2種NSManagedObject子類 - 「Subject」和「TimeOfSchedule」。實體對象是具有TimeOfSchedule檢查覈心數據關係中是否有相同的對象

@property (nonatomic, retain) TimeOfSchedule *timeOfSubject; 

連接以我的TableView我正在填充時間單元從一個數組,其中i從核心取出這個數據Data

TimeOfSchedule *objectDate = [timesArray objectAtIndex:(long)indexPath.row]; 

但如果有這樣TimeOfSchedule其連接與主題或主題具有相同的關係對象,我想以另一種方式填充單元格。我該如何做這樣的驗證或驗證?

回答

2

首先,從核心數據提取填充數組不是一個好主意。您應該探索NSFetchedResultsController API並使用它。第二,一旦你已經檢索到你的表格視圖單元格的對象,你可以用同樣的方法來檢查Objective-C中任何其他對象的存在。

if (objectDate.subject) { 
    // dequeue cell for displaying subject 
} 
else { 
    // dequeue cell for displaying only the date 
} 
+1

我同意Mundi的看法,我甚至會說你現在已經遠遠好於現在的重構了,刪除數組並直接與Core Data交談。這是它如何使用。 – 2014-12-04 20:02:42

+0

@ MarcusS.Zarra爲什麼?製作一個數組非常容易,並且可以使用它 – 2014-12-04 20:21:16

+0

@ user3224534您正在做同樣的工作兩次,一次是數據庫,一次是數組。您在浪費CPU時間和內存,同時增加錯誤發生的概率。不聰明。 – Mundi 2014-12-04 20:32:31

0

如果你不想填加載時間陣列,可以隨時對數據進行的基礎一個電話,看看是否有對象與另一相關。

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Subject"]; 
     request.predicate = [NSPredicate predicateWithFormat:@"timeOfSubject == %@",objectDate]; 

     NSError *error; 
     NSArray *matches = [self.managedObjectContext executeFetchRequest:request error:&error]; 

     if ([matches count]) { // Do Something; 
     } else { // Do Something Else 
     } 

希望它有幫助。

相關問題