2014-04-12 2 views
0

를 저장하지 그래서 난 내있는 tableview에 표시 할 데이터를 얻이 수없는 것 그러나 나는 상황이 저장되지 않았습니다 발견하고이 오류가 점점 계속 :아이폰 OS 마법 기록

[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0x166a70b0) NO CHANGES IN ** DEFAULT ** CONTEXT - NOT SAVING 
2014-04-12 19:49:04.722 0DataCollector[3218:60b] Managedcontext working (
    TestSuburb 
) 



- (IBAction)backToSuburbsTableViewController:(UIStoryboardSegue *)segue { 

    if ([segue.sourceViewController isKindOfClass:[NewSuburbTableViewController class]]) { 
     NSLog(@"Coming back from NewSuburbTableViewController"); 
     NewSuburbTableViewController *srcVC = segue.sourceViewController; 
     suburbString = srcVC.suburbTextField.text; 
     [suburbsArray addObject:suburbString]; 

     //Save Managed Object Context 
     [[NSManagedObjectContext defaultContext] saveToPersistentStoreWithCompletion:^(BOOL success, NSError *error) { 
      if (success) { 
       NSLog(@"You successfully saved your context."); 
      } else if (error) { 
       NSLog(@"Error saving context: %@", error.description); 
      } 
     }];  NSLog(@"Managedcontext working %@", suburbsArray); 


    } 

당신이 할 수있는 어떤 도움을 제안 크게 감사하겠습니다, 나는 또한 도움이되지 않는 "contextWithinCurrentThread"저축 시도했다. TableViewController에 대한 코드의

나머지 :

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    suburbsArray = [[NSMutableArray alloc] init]; 

    [self fetchSuburbs]; 

    // Uncomment the following line to preserve selection between presentations. 
    // self.clearsSelectionOnViewWillAppear = NO; 

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
    // self.navigationItem.rightBarButtonItem = self.editButtonItem; 
} 

- (void)fetchSuburbs { 
    //Fetch suburbs 
    self.suburbsArray = [NSMutableArray arrayWithArray:[Suburb findAllSortedBy:@"name" ascending:YES]]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    [self fetchSuburbs]; 

    [self.tableView reloadData]; 
} 

#pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    // Return the number of sections. 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    // Return the number of rows in the section. 
    return [suburbsArray count]; 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    NSMutableArray *reversedSuburbsArray = [[[suburbsArray reverseObjectEnumerator] allObjects] mutableCopy]; 

    //Fetch suburb 
    Suburb *suburb = [self.suburbsArray objectAtIndex:indexPath.row]; 

    // Configure the cell... 
    cell.textLabel.text = suburb.name; 

    return cell; 
} 
+0

, 그것은 예상 NSLog 출력입니다. 테이블을 다시로드하고 있습니까? 그것이 구원받지 못했다고 확신합니까? –

+0

빠른 답장을 보내 주셔서 감사합니다. 데이터가 보존되지 않습니다. 앱을 종료하고 다시 돌아 가면 사라집니다. 에 의해 내가 근본적으로 뭔가를 잘못하고 있다면 여기에 그것을 지적 자유롭게. – jkd359

+0

그리고 "나는"내가 올바르게 데이터를 다시로드 할 수 있도록 게시물을 편집하겠습니다. – jkd359

답변

3

아마도 당신이 작성하고 문맥에 새로운 NSmanagedObject "교외"를 삽입하는 등 변화가없는 것은 아니다. 이 경우 귀하의 문제는 저장과 관련이 없으며 저장할 것이 없습니다.

변경 가능한 배열에 추가해도 새 교외가 만들어지지 않습니다. NSmanagedObject와 관련이없는 문자열 객체 만 만들었습니다.

나는 그 제안 :

오류로 표시되지 않습니다
- (IBAction)backToSuburbsTableViewController:(UIStoryboardSegue *)segue { 

    if ([segue.sourceViewController isKindOfClass:[NewSuburbTableViewController class]]) { 
     NSLog(@"Coming back from NewSuburbTableViewController"); 
     NewSuburbTableViewController *srcVC = segue.sourceViewController; 
     suburbString = srcVC.suburbTextField.text; 
     [suburbsArray addObject:suburbString]; 

     // Create the new suburb 
     Suburb *theNewBurb = [Suburb createEntity]; 
     theNewBurb.burbName = suburbString; // I don't know what properties you have on Suburb so you would need to correct this 
     // You also need to set any other required properties of Suburb prior to save or it will fail 

     //Save Managed Object Context 
     [[NSManagedObjectContext defaultContext] saveToPersistentStoreWithCompletion:^(BOOL success, NSError *error) { 
      if (success) { 
       NSLog(@"You successfully saved your context."); 
      } else if (error) { 
       NSLog(@"Error saving context: %@", error.description); 
      } 
     }];  NSLog(@"Managedcontext working %@", suburbsArray); 


    } 
+0

고마워요. - 저는 정말로 감사합니다. 다시 한 번 고맙습니다. – jkd359