2011-01-16 70 views
2

我试图用最喜欢的MGTwitterEngineMGTwitterEngine - 最爱鸣叫

我使用“分享Tweet”一个子类我做它处理的用户ID,姓名等,所以我将它放入一个字符串鸣叫然后将其转换为可用于处理收益行为的数字。鸣叫

我的代码:http://pastie.org/1467311

+0

如果这是一个问题,我希望在句子末尾有一个问号('?')。 – Gabe

回答

2

这是一个非常古老的职位,并不能确定是否有人找出来,但我设法做这个确切的事情后,今天一些“打了小姐。这里是你必须做的:

  1. 声明你的类实现MGTwitterEngineDelegate
  2. 实现至少应下面的方法来获取状态

    (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier 
    
  3. 的状态阵列具有的NSDictionary在第一个位置。解压如下

    NSDictionary *status = (NSDictionary *)[statuses objectAtIndex:0]; 
    
  4. 摘自词典“source_api_request_type”和“ID”两个键。将它们都保存为NSString值。

  5. 更新MGTwitterEngine.h和MGTwitterEngine.m以更改markUpdate方法的方法签名,以发送updateID作为NSString而不是unsigned int。这将类似于变更后的以下内容:

    (NSString *)markUpdate:(NSString *)updateID asFavorite:(BOOL)flag; // favorites/create, favorites/destroy 
    
  6. 更改%u在markUpdate方法%@使输入参数的变化正确适用。 (您必须在方法中的两处进行更改)

  7. 回到代码中,您将使用类似于以下内容的内容来发送推文。

    [twitterEngine sendUpdate: @"My Tweet Text"]; 
    
  8. 这会在tweet发布成功后提升statusRecieved事件。在前面提到的statusRecieved事件中,我们需要两个值tweetId和请求类型。

  9. 使用下面的代码来检查请求类型== 5,并且如果它通过传递值的tweet Id和布尔值为YES to favorite(或NO to un-favour)tweet来调用markUpdate方法。您的代码看起来就像这样:

    (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier 
    { 
        if([statuses count] > 0) 
        { 
         NSDictionary *status = (NSDictionary *)[statuses objectAtIndex:0]; 
         NSString *stringId = (NSString *)[status objectForKey:@"id"]; 
         NSNumber *requestType = (NSNumber *)[status objectForKey:@"source_api_request_type"]; 
         NSLog(@"Tweet ID String - %@ and Request Type: %@.", stringId, requestType); 
         if ([requestType isEqualToNumber: [NSNumber numberWithInt: 5]]) 
         { 
          [twitterEngine markUpdate: stringId asFavorite:YES]; 
         } 
        } 
    } 
    
  10. “请求类型” 5的秘诀是一个新的鸣叫张贴有5“API请求ID”,我们希望想收藏仅标志着新的鸣叫。 (当你在tweet被标记为最爱后看到id,它将是状态26)。

随着iOS 5隐现MGTwitterEngine即将被弃用。但是在我自己的项目中弄清楚这一点很有趣。希望有人发现它有用。