Ios 处理长时间运行的任务和Parse.com API

Ios 处理长时间运行的任务和Parse.com API,ios,swift,parse-platform,Ios,Swift,Parse Platform,我对iOS有点陌生,所以我不知道如何处理我的问题 我担心的问题是,当我的应用程序中的一个用户说他们想删除他们的帐户时,我从我的Parse中保存的后端删除了所有这些数据。要删除用户数据,我必须通过几个表,这取决于数据量,可能需要一些时间。在这段时间里,用户总是可以把应用程序放在后台,因为他们不想等待什么 这是我所做的一个例子 var commentKeys:Comment.CommentKeys = Comment.CommentKeys() var qComment = Comm

我对iOS有点陌生,所以我不知道如何处理我的问题

我担心的问题是,当我的应用程序中的一个用户说他们想删除他们的帐户时,我从我的
Parse
中保存的后端删除了所有这些数据。要删除用户数据,我必须通过几个表,这取决于数据量,可能需要一些时间。在这段时间里,用户总是可以把应用程序放在后台,因为他们不想等待什么

这是我所做的一个例子

var commentKeys:Comment.CommentKeys = Comment.CommentKeys()
        var qComment = Comment.query()
        qComment.whereKey("id", equalTo: account.getId())
        qComment.findObjectsInBackgroundWithBlock {(results: [AnyObject]!, error:NSError!) -> Void in
            if(error == nil){
                if((results as NSArray).count > 0){
                    for item in (results as NSArray){
                        (item as Comment).deleteInBackgroundWithBlock(nil)
                    }
                }
            }
        }
这只是一张表,还有6张表需要清理

如果这些都不清除,可能会导致数据孤立。我如何防止这种情况发生,是否有一种方法可以允许执行完成,即使该应用程序已被备份

但我使用的是
NSOperationQueue
,我在这里不是两件事

1.)查看解析云代码。您将能够创建deleteThisUser(objectId)函数,该函数将允许您删除服务器上的用户和所有相关数据

2.)您可能希望更高效地组织表或更高效地查询表。使用Parse SDK,您可以查询多个对象并销毁()同一请求中的多个对象

可以将相关对象存储为对象内的指针。 例如,您可以将与注释相关的帖子存储为注释对象内的指针。如果帖子是用户写的,也可以删除。这是一个不好的例子,但这应该说明这个概念,以便您可以在其他地方应用它

NSMutableArray *objectsToBeDeleted = [NSMutableArray array];

PFQuery *query = [PFQuery queryWithClassName:@"Comment"];
 // Retrieve the most recent ones
 [query orderByDescending:@"createdAt"];
 [query whereKey:@"id", equalTo: account.getId()];

 // Include the post data with each comment
 [query includeKey:@"post"];

 [query findObjectsInBackgroundWithBlock:^(NSArray *comments, NSError *error) {
    for (PFObject *comment in comments) {

        // add comment to be deleted
        [objectsToBeDeleted addObject:comment];

        //get the post from the pointer contained in the comment object
        PFObject *post = comment[@"post"];

        //Check to see if the post was written by the current user
        if(post[@"authorId"] ==  account.getId()){
             //add the post to be deleted also
             [objectsToBeDelted addObject:post];
        }

    }
    // Accepts an NSArray containing one or more PFObject instances
    [PFObject deleteAllInBackground:objectsToBeDeleted];
}];
我设想deleteAllInBackground:方法将接受NSMutableArray,但如果不接受,则可以使用以下代码:

NSArray *arrayToDelete = [objectsToBeDeleted copy];
// Accepts an NSArray containing one or more PFObject instances
[PFObject deleteAllInBackground:arrayToDelete];

祝你好运

云代码可能是我要做的,但你能再详细说明一下第2点吗?我怎么能像你说的那样删除多个对象?