【问题标题】:STTwitter - How can i take just 5 record on Stream APISTTwitter - 我怎样才能在 Stream API 上只记录 5 条记录
【发布时间】:2014-08-26 01:14:56
【问题描述】:

我在我的项目中使用了 STTwitter,我想在某个坐标上发布 5 条推文。有这样的问题,但我不明白。

How can I stop a stream when using STTWitter

我试过这样,但它不会停留在 5 条记录并且总是返回推文。

-(void)getTwitterActivityWithLocation:(CLLocation *)location withSuccessBlock:(void(^)(NSMutableArray *activities))successBlock
{
    STTwitterAPI *twitter = [STTwitterAPI twitterAPIOSWithFirstAccount];
    [twitter verifyCredentialsWithSuccessBlock:^(NSString *username) {
        NSString *latRectLeft = [[NSString alloc] initWithFormat:@"%f",location.coordinate.latitude];
        NSMutableArray *data = [[NSMutableArray alloc] init];

        id twitterRequest = [twitter postStatusesFilterUserIDs:nil keywordsToTrack:nil locationBoundingBoxes:@[@"28.9986108",@"41.0377369",@"28.9996108",@"41.0387369"] delimited:@20 stallWarnings:nil progressBlock:^(NSDictionary *tweet) {


            if ([data count] > 4) {
                [twitterRequest cancel];
                successBlock(data);
            }
            else if (([[tweet valueForKey:@"geo"] valueForKey:@"coordinates"] != nil)) {

                if (![tweet isEqual:nil] && [tweet count] > 0)
                {
                    NSLog(@"%@",[tweet valueForKey:@"text"]);
                    [data addObject:tweet];
                }

            }

        } stallWarningBlock:nil
            errorBlock:^(NSError *error) {
                NSLog(@"Error");
        }];


    } errorBlock:^(NSError *error) {
        NSLog(@"%@",[error description]);
    }];


}

如果将[twitterRequest cancel]; 线带到块外,它的工作。但是这次我没有任何推文记录。

我该如何解决这个问题?

【问题讨论】:

    标签: objective-c ios7 twitter sttwitter


    【解决方案1】:

    使用__block id twitterRequest 而不是id twitterRequest

    例子:

    STTwitterAPI *twitter = [STTwitterAPI twitterAPIOSWithFirstAccount];
    
    [twitter verifyCredentialsWithSuccessBlock:^(NSString *username) {
    
        NSMutableArray *data = [NSMutableArray array];
    
        __block id twitterRequest = [twitter postStatusesFilterUserIDs:nil
                                                       keywordsToTrack:nil
                                                 locationBoundingBoxes:@[@"28.9986108",@"41.0377369",@"28.9996108",@"41.0387369"]
                                                             delimited:@20
                                                         stallWarnings:nil
                                                         progressBlock:^(NSDictionary *tweet) {
    
                                                             NSLog(@"-- data count: %lu", (unsigned long)[data count]);
    
                                                             if ([data count] > 4) {
                                                                 NSLog(@"-- cancel");
                                                                 [twitterRequest cancel];
                                                             } else if (([[tweet valueForKey:@"geo"] valueForKey:@"coordinates"] != nil)) {
                                                                 if ([tweet count] > 0) {
                                                                     NSLog(@"%@",[tweet valueForKey:@"text"]);
                                                                     [data addObject:tweet];
                                                                 }
    
                                                             }
    
                                                         } stallWarningBlock:nil
                                                            errorBlock:^(NSError *error) {
                                                                NSLog(@"-- error 2: %@", error);
                                                            }];
    
    } errorBlock:^(NSError *error) {
        NSLog(@"-- error 1: %@", error);
    }];
    

    日志:

    -- data count: 0
    Rabbim sana cok sukur (...)
    -- data count: 1
    +Sevgilin varmı evladım (...)
    -- data count: 2
    @RussoftMe gt or unf *-*
    -- data count: 3
    Essege altin semer vursan essek yine essektir...
    -- data count: 4
    :-) (@ Pizza Hut) http://t.co/SZim78OnsU
    -- data count: 5
    -- cancel
    

    【讨论】:

    • 我试过了,但它仍然返回推文。你可以发送示例代码吗?谢谢。
    • 感谢@nst 它解决了问题。我也有这个..stackoverflow.com/questions/24632675/…也许你可以帮忙。
    猜你喜欢
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2019-01-12
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多