С выходом iOS 5 MGTwitterEngine скоро будет устаревшим. Но мне было интересно понять это в моем собственном проекте. Надеюсь, кто-то найдет это полезным.

аюсь добавить твит в избранное с помощью MGTwitterEngine

Я использую «Tweet» созданный мной подкласс, который обрабатывает идентификаторы пользователей, имена и т. Д. Поэтому я помещаю это в строку, которая затем преобразуется в число, которое можно использовать для обработки действия fav. твит

Мой код:http://pastie.org/1467311

 Gabe16 янв. 2011 г., 19:10
Если бы это был вопрос, я бы ожидал знак вопроса (?в конце предложения.

Ответы на вопрос(1)

и я не уверен, что кто-то ее ищет, но мне удалось сделать именно это сегодня, после некоторого удара. Вот что вам нужно сделать:

Объявите, что ваш класс реализует MGTwitterEngineDelegate

Реализуйте хотя бы следующий метод, чтобы получить статус

(void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier

Массив statuses имеет NSDictionary на первой позиции. Извлеките его следующим образом

NSDictionary *status = (NSDictionary *)[statuses objectAtIndex:0];

Извлеките два ключа из словаря «source_api_request_type» и «id». Сохраните их оба как значения NSString.

Обновите MGTwitterEngine.h и MGTwitterEngine.m, чтобы изменить сигнатуру метода markUpdate для отправки updateID в виде строки NSSt вместо unsigned int. После изменения это будет выглядеть примерно так:

(NSString *)markUpdate:(NSString *)updateID asFavorite:(BOOL)flag; // favorites/create, favorites/destroy

Изменить%u в методе markUpdate для%@ так что изменение входного параметра применяется правильно. (Вы должны внести изменения в двух местах в методе)

Вернувшись в свой код, вы будете использовать что-то похожее на следующее, чтобы отправить твит.

[twitterEngine sendUpdate: @"My Tweet Text"]; 

Это вызовет событие statusReceded после успешной публикации твита. Как уже упоминалось ранее, в событии statusRectained нам нужны два значения: tweetId и тип запроса.

Используйте следующий код, чтобы проверить, является ли запрос Type == 5 и вызывается ли метод markUpdate путем передачи значений идентификатора твита и логического значения YES для добавления в избранное (или NO для удаления из списка). Ваш код будет выглядеть так:

(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];
        }
    }
}

Тайный соус «типа запроса» 5 заключается в том, что новая публикация твита имеет «api request id» 5, и мы хотим пометить новые твиты только как избранные. (Когда вы смотрите идентификатор после того, как твит отмечен как избранный, это будет статус 26).

С выходом iOS 5 MGTwitterEngine скоро будет устаревшим. Но мне было интересно понять это в моем собственном проекте. Надеюсь, кто-то найдет это полезным.

Ваш ответ на вопрос