Iphone 添加到表中时复制数据
在我的应用程序中,当我通过单击“添加”按钮插入数据时,数据将插入到数据库和表中。记录将完全插入,但当我将该数据添加到表中时,它会复制数据库数据。以下是代码:Iphone 添加到表中时复制数据,iphone,objective-c,xcode,Iphone,Objective C,Xcode,在我的应用程序中,当我通过单击“添加”按钮插入数据时,数据将插入到数据库和表中。记录将完全插入,但当我将该数据添加到表中时,它会复制数据库数据。以下是代码: NSString *insertData=[NSString stringWithFormat:@"insert into tbl_Bills(Amount,Note,Due_On) values ('%f','%@','%@')",addAmountInDouble,val,due]; [database executeQuery:in
NSString *insertData=[NSString stringWithFormat:@"insert into tbl_Bills(Amount,Note,Due_On) values ('%f','%@','%@')",addAmountInDouble,val,due];
[database executeQuery:insertData];
NSLog(@"inert query: %@",insertData);
NSLog(@"value inserted");
NSString *countQuery = [NSString stringWithFormat:@"Select Bill_Id,Entry_Date,Amount,Note,Due_On from tbl_Bills"];
NSArray *countArray1 = [database executeQuery:countQuery];
NSLog(@"Query:%@",countArray1);
[BillTableArray addObjectsFromArray:countArray1];
NSLog(@"Count array %@",countQuery);
NSLog(@"table array:%@",BillTableArray);
[database close];
[table reloadData];
计数数组很好,但表数组复制了值。.我还在
viewDidLoad()
方法中初始化表数组。这是因为在将新数据添加到BillTableArray之前,您没有清除BillTableArray中的数据。您将在整个表中重新运行查询,从而再次检索所有记录,包括您在初始视图加载时已在BillTableArray中设置的记录
问题在于这一行:
[BillTableArray addObjectsFromArray:countArray1];
BillTableArray已经加载了来自初始viewDidLoad调用的数据,但是您执行的查询再次从数据库检索所有这些数据,此行将再次将所有这些对象添加到数组中。因此,除了新添加的项目外,您可能会看到所有项目的副本
您可能只需要执行以下操作:
BillTableArray = [countArray1 retain];
或者类似的东西(不要忘记适当地保留/释放对象,以确保不会丢失或泄漏对象,也不要不确定BillTableArray是如何声明的。这是因为在将新数据添加到BillTableArray之前,您没有清除BillTableArray中的数据。您正在跨整个表重新运行查询,从而再次检索所有记录,包括uding在初始视图加载时已在BillTableArray中设置的视图 问题在于这一行:
[BillTableArray addObjectsFromArray:countArray1];
BillTableArray已经加载了来自初始viewDidLoad调用的数据,但是您执行的查询再次从数据库中检索所有这些数据,这一行正在第二次将所有这些对象添加到数组中。因此,除了新添加的项外,您可能会看到所有对象的重复项
您可能只需要执行以下操作:
BillTableArray = [countArray1 retain];
或者类似的东西(不要忘记适当地保留/释放对象,以确保不会丢失或泄漏对象,也不要不确定BillTableArray是如何声明的。
BillTableArray
可能包含表中已有的所有数据。当您重新查询数据库以获取附加值时,您将返回所有内容,然后再次添加所有内容n
所以,也
- 专门将新对象添加到
BillTableArray
- 将countQuery更改为仅返回新对象
- 将
的所有内容替换为BillTableArray
countArray1
BillTableArray
可能包含表中已有的所有数据。当您重新查询数据库以获取增值时,您将返回所有内容,然后再次添加所有内容
所以,也
- 专门将新对象添加到
BillTableArray
- 将countQuery更改为仅返回新对象
- 将
的所有内容替换为BillTableArray
countArray1
[BillTableArray addObjectsFromArray:countArray1];
添加数组countArray1中的所有对象。因此我猜在添加新对象之前,BillTableArray
中的现有对象不会被删除。这会创建重复项。要删除重复项,只需删除BillTableArray
中的所有对象,然后添加countArray1
中的对象即可
请注意,请确保以小写字母开始命名变量。
[BillTableArray addObjectsFromArray:countArray1];
添加数组countArray1中的所有对象。因此我猜在添加新对象之前,BillTableArray
中的现有对象不会被删除。这会创建重复项。要删除重复项,只需删除BillTableArray
中的所有对象,然后添加countArray1
中的对象即可
请注意,请确保以小写字母开始命名变量。在添加新对象之前,首先需要清除表数组:
[BillTableArray removeAllObjects];
添加新的更新对象后:
[BillTableArray addObjectsFromArray:countArray1];
首先,在添加新对象之前,需要清除表数组:
[BillTableArray removeAllObjects];
添加新的更新对象后:
[BillTableArray addObjectsFromArray:countArray1];
yup表格数组复制值。是否可以提供表格数组的代码?yup表格数组复制值。是否可以提供表格数组的代码?