如何在 Parse 中添加数字(衡量标签的流行度)

How to add a number in Parse (Measuring popularity of a tag)

我正在尝试实现一种方法来衡量某个标签的受欢迎程度。因此,我写了一个方法,当没有预先存在的标签时,用户可以添加一个新标签。我还想创建一个列来显示特定标签的使用次数。但是,当我尝试将 1 添加到对象中的那个计数器时,另一个对象中的计数器会增加。我不知道如何解决这个问题。感谢任何帮助。

        PFQuery *query = [PFQuery queryWithClassName:@"TagTrend"];
       NSMutableArray *preexistingTags = [NSMutableArray array];
        NSMutableArray *preexistingTagId = [NSMutableArray array];
        NSMutableArray *numPostsArray = [NSMutableArray array];

        [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
            if (error == nil) {
                int count = (int)objects.count;
                for (PFObject *object in objects){
                    NSString *tagName = [NSString stringWithFormat:@"%@", [object objectForKey:@"TagName"]];
                    [preexistingTags addObject:tagName];
                    NSLog(@"tagname %@", tagName);

                    NSNumber *numPostsNSNUM = [object objectForKey:@"NumberOfPosts"];
                    //int numPosts = [numPostsStr intValue];
                    [numPostsArray addObject:numPostsNSNUM];
                    NSLog(@"tagNum %@", numPostsNSNUM);


                    //NSLog(@"number of posts %i", numPosts);
                    NSString *objectId = [NSString stringWithFormat:@"%@", [object objectId]];
                    [preexistingTagId addObject:objectId];
                    NSLog(@"tagId %@", objectId);


                    count --;

                    if (count == 0) {


                        for (int i = 0; i < miscTagArray.count; i++) {
                            NSString *tagName = [miscTagArray objectAtIndex:i];
                            NSString *tagObjectId = [preexistingTagId objectAtIndex:i];
                            NSNumber *numPosts = [numPostsArray objectAtIndex:i];
                            BOOL sameTag = [preexistingTags containsObject:tagName];

                            if (sameTag == NO){
                                PFObject* tagPop = [PFObject objectWithClassName:@"TagTrend"];
                                NSLog(@"NO %@",tagName);

                               // NSString *numPostsStr = @"1";
                                NSNumber *numPosts = @1;
                                tagPop[@"NumberOfPosts"] = numPosts;

                                 tagPop[@"TagName"] = tagName;

                                [tagPop saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error){
                                    if (!error) {
                                        NSLog(@"success");
                                    }else{
                                        NSLog(@"failure");}
                                }];
                            }else{

                                PFObject* tagPop = [PFObject objectWithoutDataWithClassName:@"TagTrend" objectId: tagObjectId];
                                NSLog(@"YES %@",tagName);
                                int tempNumPosts = [numPosts intValue];
                                tempNumPosts ++;
                                tagPop[@"NumberOfPosts"] = [NSNumber numberWithInt:tempNumPosts];
                                [tagPop saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error){
                                    if (!error) {
                                        NSLog(@"success");
                                    }else{
                                        NSLog(@"failure");}
                                }];
                            }


                        }
                    }}}}];

确保 miscTagArray 中的标签索引与 objectID/numPosts 索引相对应。我怀疑这些没有排队并且导致错误的对象计数器增加。希望能有所帮助。