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 ???
} 

助言がありますか?ありがとう!

4

1 に答える 1

3

コードは問題ないように見えるので、フェッチ リクエストを実行するだけです。

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];
}

最初の要素だけが必要なので、設定することでパフォーマンスを向上させることができることに注意してください

[fetchReq setFetchLimit:1]
于 2013-11-01T19:50:35.450 に答える