Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 添加到表中时复制数据_Iphone_Objective C_Xcode - Fatal编程技术网

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表格数组复制值。是否可以提供表格数组的代码?