2013-11-01 59 views
1

對於Core Data來說還是有點新奇,並且陷入了一個問題。我在一個名爲index的託管對象中有一個int屬性。我需要遍歷所有託管對象並確定最高索引值。我選擇在我的排序描述符下降,這樣我可以訪問索引爲0的數組對象我知道這應該是簡單的,但這裏是我當前的代碼:核心數據:獲取屬性的最低值

+(NSInteger)getHighIndexNumber{ 
    NSManagedObjectContext *context = [[FavesDataModel sharedDataModel] mainContext]; 
    NSFetchRequest *fetchReq = [[NSFetchRequest alloc] init]; 

    NSSortDescriptor *sortByIndex = [[NSSortDescriptor alloc] initWithKey:@"index" ascending:NO]; 
    [fetchReq setSortDescriptors:[NSArray arrayWithObject:sortByIndex]]; 

    NSEntityDescription *entity = [NSEntityDescription entityForName:[Favorite entityName] inManagedObjectContext:context]; 
    [fetchReq setEntity:entity]; 

    return ??? 
} 

有什麼建議?謝謝!

+0

提高性能當你調用' executeFetchRequest:錯誤:'在'context'上創建了'NSFetchRequest',會發生什麼?這不符合你的期望? –

回答

3

你的代碼看起來OK,所以只是執行讀取請求:

NSError *error; 
NSArray *objects = [context executeFetchRequest:fetchReq error:&error]; 
if (objects == nil) { 
    // An error occurred, report error and return nil? 
    NSLog(...); 
    return nil; 
} else if ([objects count] == 0) { 
    // No object found, return nil? 
    return nil; 
} else { 
    // At least one object found, return the first one: 
    return objects[0]; 
} 

注意,因爲你只需要第一個元素,你可以通過設置