2012-01-11 10 views
0

私はストーリーボードと共にコアデータを使用しています。私は1 UITableViewと1 UIViewControllerです。 entireをエンティティに追加すると、コンテキスト(データベース)に追加されますが、私が戻ったときにテーブルビューに反映されません。私は再び私のアプリを実行しなければならないと私は私の追加エントリを見ることができる鶏。これは私が新しいオブジェクトを追加する方法である:私のUITableViewに追加されたエントリを反映するには?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    myAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    self.managedObjectContext = myAppDelegate.sharedManagedObjectContext; 

    NSFetchRequest *personListRequest = [[NSFetchRequest alloc] init]; 

    NSEntityDescription *personEntity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:managedObjectContext]; 

    [personListRequest setEntity:personEntity]; 

    NSError *personListRequestError; 

    NSArray *personsList = [self.managedObjectContext executeFetchRequest:personListRequest error:&personListRequestError]; 


    for(Person *thisPerson in personsList) { 
     NSLog(@"First name is %@", thisPerson.firstName); 
     NSLog(@"First name is %@", thisPerson.lastName); 
    }  
    NSLog(@"the contents of array are %@",personsList); 
    personArray = [[NSMutableArray alloc] initWithArray:personsList]; 
} 

私は私のエントリは、私はそれらを追加するとき、私はそれらを見るために、再び私のアプリを実行したくない、私のテーブルで更新することにしたいです。

+0

をviewDidLoad:[self.tableview reloadData]の下部に表示してください。 –

+0

私は新しいデータベースをリロードしなければならないデータをリロードしたくありません。 – newstar7867

答えて

0

あなたはそれがデータだリロードするテーブルビューを指示する必要があります:

[tableView reloadData]; 
1

あなたが効率的にコアデータから返された結果は、のUITableViewオブジェクトのためのデータを提供するための要求をフェッチ管理するためにフェッチ結果コントローラを使用しています。

テーブルビューはいくつかの方法で使用できますが、このオブジェクトは主にマスターリストビューを支援することを目的としています。 UITableViewは、データソースが行からなるセクションの配列としてセルを提供することを期待しています。このクラスのインスタンスは、エンティティを指定するフェッチ要求、少なくとも1つの並べ替え順序を含む配列、およびオプションでフィルタ述語を使用して構成します。 NSFetchedResultsControllerは、フェッチ要求の結果を効率的に分析し、結果セット内のセクションとインデックスについてのすべての情報を計算します。詳細についてはapple docother sample

関連する問題