gpt4 book ai didi

objective-c - 从数组和数据库中删除行

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:18 25 4
gpt4 key购买 nike

我开发了一个应用程序,我需要在其中从数组和数据库中删除行..?在 cellForRowAtIndexPath 中,我写成 cell.textLabel.Text=[myarray.objectAtIndexPath. row]; 我也想从数据库和数组中删除该行。在编辑方法中,我编写的代码如下

MoneyAppDelegate *mydelegate=(MoneyAppDelegate *)[[UIApplication sharedApplication]delegate];

if (editingStyle == UITableViewCellEditingStyleDelete)
{
database *objdata=[[database alloc]init];
[app deleteCategory:objdata];
[self.mytableview deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}

但它不起作用。在 deletecategory 方法中,我有类似

的代码
-(void)deleteCategory:(database *)databaseObj
{
[databaseObj deleteCategory];
[myarray removeObject:databaseObj];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

MoneyAppDelegate *app = (MoneyAppDelegate *)[[UIApplication sharedApplication]delegate];

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
}

cell.textLabel.text = [app.myarray4 objectAtIndex:indexPath.row];

return cell;}

deletecategory 是从数据库中删除记录的方法。没有别的。我怎样才能从数据库中删除选定的行我知道这很简单但我还是很困惑..thnanx 提前:)

最佳答案

像这样尝试-

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}

-(void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
[self delBtnPressed:indexPath.row];
}

//在这里放置你的代码-

-(void)delBtnPressed:(int)sender
{
NSString *titleStr=@"";
NSString *table=@"";
NSString *attribute=@"";

sqlite3 *database;

if(![titleStr isEqualToString:@""])
{
//-------------------------------deletion-------------------------

if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{

NSString * sqlStatement = [NSString stringWithFormat:@"delete from %@ where %@='%@' ",table,attribute,titleStr];

if (sqlite3_exec(database, [sqlStatement cStringUsingEncoding:NSUTF8StringEncoding], NULL, NULL, NULL) == SQLITE_OK)
{

[yourArr removeAllObjects];
[self fetchAgain]; //here you need to fetch all records from DB and fill the yourArr again.
[tblView reloadData];

}
sqlite3_close(database);

}

}
else
{
NSLog(@"Error while deleting please try again");
}

}

关于objective-c - 从数组和数据库中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10291802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com