0

これが cellforRowAtIndexPath メソッドを実装したものです

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    static NSString *cellIdentifier=@"myCell";
    CustomTableCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell==nil)
    {
        cell=[[CustomTableCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
        DBObjectClass * info=[StudentInformationArr objectAtIndex:indexPath.row];
    cell.studIdLbl.text=[NSString stringWithFormat:@"%d",info.StudIDs];
    cell.studNameLbl.text=info.StudentName;
    cell.studEmailLbl.text=info.StudentEmail;
    cell.StudcontactLbl.text=[NSString stringWithFormat:@"%d",info.StudentContact];


    return cell;

}

ここで、DBObjectClass は NSOBject クラス モデル クラスです。

これがTableViewでデータを表示する方法です

-(NSMutableArray*)StudentInformation;
{
    NSMutableArray *DBArray=[[NSMutableArray alloc]init];
    NSString *query=@"SELECT * FROM StudInfo ORDER BY studid";
    NSLog(@"Query is:%s",[query UTF8String]);
    sqlite3_stmt *statement;
    if (sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil)==SQLITE_OK)
    {
        while (sqlite3_step(statement)==SQLITE_ROW)
        {
            int  studID=sqlite3_column_int(statement, 0);
            char *studName=(char*)sqlite3_column_text(statement, 1);
            char *studEmail=(char*)sqlite3_column_text(statement, 2);
            int studContact= sqlite3_column_int(statement, 3);

            NSString *name=[[NSString alloc]initWithUTF8String:studName];
            NSString *email=[[NSString alloc]initWithUTF8String:studEmail];
            DBObjectClass *DbObj=[[DBObjectClass alloc]initWithSID:studID SName:name SEmail:email SContact:studContact];
            [DBArray addObject:DbObj];

        }
        sqlite3_finalize(statement);
    }
    sqlite3_close(_database);
    return DBArray;
}

ここで削除クエリを実装しようとしています

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 

この仕事を得る方法は?

4

1 に答える 1

0

このようにしてみてください。

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
 {
    if (editingStyle == UITableViewCellEditingStyleDelete)
         {
         NSManagedObject * managedObject = [StudentInformationArr objectAtIndex:indexPath.row];

         NSError *error;   
            [[self getManagedObjectContext] deleteObject: managedObject];
            [[self getManagedObjectContext] save:&error];
        }
//before reload your tableView you have to fetch the data from your core data again. So that StudentInformationArr will get updated. Use something like 

    StudentInformationArr =[self fetchStudentInformationArray];

        [self.myTableView reloadData];
}
于 2013-10-03T06:30:24.723 に答える