2

私はプログラミング全般、特に客観的なCコアデータに非常に慣れていません。スプレッドシートからデータを読み取り、テーブルビューに表示しようとしています。オブジェクトを保持するために作成した配列は空です。データを配列に保存する方法がわかりません。さらに、保存された値が読み取られないという警告が表示されます。これについての支援を大いに感謝します--私の知恵の終わりに。

これが私のコードです:

DataStorage *parentTab;
parentTab = (DataStorage *)self.parentViewController;
_context = [parentTab context];

[self populateCollegeObjects];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *dataEntity = [NSEntityDescription entityForName:@"CollegeList"     inManagedObjectContext:_context];
[fetchRequest setEntity:dataEntity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"collegeName" ascending:YES];

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors ];
[sortDescriptors release];
[sortDescriptor release];

NSFetchedResultsController *controller = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_context sectionNameKeyPath:nil cacheName:nil];
[fetchRequest release];

NSError *error;
[controller performFetch:&error];

for (int counter = 0; counter< [sortDescriptors count]; counter ++)
{
   if ([_collegeObjects count] == 0)
    {
        _collegeObjects = [[NSArray alloc] init];

        CollegeList *addCollege;

        //addCollege = [CollegeList initWithName:<#(NSString *)#> andURL:<#(NSString *)#> andDetail:<#(NSString *)#> forContext:<#(NSManagedObjectContext *)#>_context];
    }
}
4

1 に答える 1

0

あなたの質問が正確に何であるかはよくわかりません。配列はコアデータのエンティティで満たされていると想定されていますか?

たぶん、これを試して、これが役立つかどうかを確認できます。

[fetchRequest setEntity:dataEntity];
NSArray *fetchedObjects = [_context executeFetchRequest: fetchRequest error: nil];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"collegeName" ascending:YES];

NSArray *sortDescriptors = @[sortDescriptor];
NSArray *sortedFetchedObjects = [fetchedObjects sortedArrayUsingDescriptors:sortDescriptors];

sortedFetchedObjectsには、探しているソート済みオブジェクトの配列が含まれている必要があります。

于 2012-10-22T22:34:29.527 に答える