我有一个iOS应用程序,我开发并安装在几个iPad上进行测试。在测试期间,我在大约5个小时内完成了数千笔交易。当我分析存储在Parse的交易记录时,我发现有7个交易被插入到Parse类中两次。 下面你可以看到代码的SaveinBackgroundWithBlock部分。虽然每个要保存的记录都有一个saveinbackgroundwithBlock,但对于这7个案例,创建了2个记录。 有趣的是,对于重复记录,_updatedAt字段几乎相同但不完全相同。重复条目有336毫秒的差异。 objectIds也不同。
负责将记录插入Parse
的部分代码//Enter Sales Record into Parse with Block
PFObject *saleObject = [PFObject objectWithClassName:@"sale"];
saleObject[@"tokenid"] = firstNameString;
saleObject[@"saleamount"] = @(optionsSingle.globalSaleAmount);
saleObject[@"saleUser"] = [[PFUser currentUser] username];
saleObject[@"status"] = @"S";
[saleObject saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
// Record successfully sent to Parse
//Update Balance
PFQuery *queryBalance = [PFQuery queryWithClassName:@"balance"];
[queryBalance whereKey:@"tokenid" equalTo:anaTokenString];
[queryBalance getFirstObjectInBackgroundWithBlock:^(PFObject *objectBalance, NSError *error) {
objectBalance[@"amount"] = @(updateBalanceAmount);
[objectBalance saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
// Record successfully sent to Parse
//after sale transaction, successfully updated balance at Parse class
[_activityInd stopAnimating];
[self dismissViewControllerAnimated:YES completion:nil];
} else {
// Error
}
}];
}];
} else {
// Error management
}
}];
我注意到有两个类似的问题,但没有解决方案。 我怀疑这可能是一个需要详细检查的Parse后台线程问题