2

MGTwitterEngineをダウンロードして、iPhoneプロジェクトに追加しました。それは、NSLogにそれらをダンプすることから私が知ることができる彫像を接続して取得しています。しかし、呼び出しをテーブルに追加するために、呼び出しをどのように解析する必要があるのか​​理解できません。それらはNSStringとして返され、次のようになります。

      {
    "created_at" = 2009-07-25 15:28:41 -0500;
    favorited = 0;
    id = 65;
    source = "<a href=\"http://twitter.com/\">Twitter</a>";
    "source_api_request_type" = 0;
    text = "The wolf shirt strikes again!! #sdcc :P http://twitpic.com/blz4b";
    truncated = 0;
    user =         {
        "created_at" = "Sat Jul 25 20:34:33 +0000 2009";
        description = "Host of Tekzilla on Revision3 and Qore on PSN. Also, a geek.";
        "favourites_count" = 0;
        "followers_count" = 0;
        following = false;
        "friends_count" = 0;
        id = 5;
        location = "San Francisco";
        name = "Veronica Belmont";
        notifications = false;
        "profile_background_tile" = false;
        "profile_image_url" = "http://blabnow.com/avatar/Twitter_10350_new_twitter_normal.jpg";
        protected = 0;
        "screen_name" = Veronica;
        "statuses_count" = 2;
        "time_zone" = UTC;
        url = "http://www.veronicabelmont.com";
        "utc_offset" = 0;
    };

誰かがこれを使用して、他の人がプロジェクトでどのように使用しているかを教えてくれますか?

ありがとう

4

2 に答える 2

8

コンソールに表示されているのは、NSString ではなく、NSDictionary の NSLog です。Matt Gemmell のMGTwitterEngine Readmeから:

これらのメソッドに送信される値はすべて、各ステータス、ユーザー、またはダイレクト メッセージの NSDictionary を含む NSArray であり、必要に応じてサブディクショナリがあります (たとえば、タイムライン メソッドは通常、ステータスを返し、それぞれにサブディクショナリがあり、そのステータスを投稿したユーザー)。

したがって、 NSLog() ステートメントに渡したオブジェクトは実際には辞書であり、次の呼び出しでフィールドにアクセスできます。

NSString *createdAtDate = [record valueForKey:@"created_at"];
NSString *source = [record valueForKey:@"source"];
// etc...

recordはオブジェクトですユーザーフィールドはサブディクショナリであることに注意してください。次の方法でアクセスします。

NSDictionary *userDict = [record valueForKey:@"user"];
NSString *name = [userDict valueForKey:@"name"];
NSString *location = [userDict valueForKey:@"location"];
// etc...

リクエストで返された NSArray をテーブル ビューのデータ ソースとして実際に使用し、-cellForRowAtIndexPath テーブル ビュー デリゲートのインデックスによって必要なものを抽出することができます。

よろしくお願いします、

于 2009-07-29T05:53:09.640 に答える
0

ここにたどり着く可能性のある他の人のために、結果を分析する1つの方法を次に示します. (初心者から、これが標準的または正しい方法であるとは考えないでください)

重要な点は、適切なデリゲート メソッドでディクショナリを使用することです。このトピックに関する別のスレッドで、 Matt Long のコード例を確認してください。

このようなものを分解するには:

[myTwitterEngine getSearchResultsForQuery:@"#ironsavior"];

彼の例は、デリゲート メソッドで次のとおりです。

- (void)searchResultsReceived:(NSArray *)searchResults 
                   forRequest:(NSString *)connectionIdentifier
{
    if ([searchResults count] > 0)
    {
        NSDictionary *result = [searchResults objectAtIndex:0];

        NSString *fromUser = [result valueForKey:@"from_user"];
        NSString *fromUserID = [result valueForKey@"from_user_id"];
        // ...
        NSString *text = [result valueForKey@"text"];

        NSLog(@"User %@(%@): %@", fromUser, fromUserID, text);
    }
}

これにより、「User username(userid): message」という非常に単純なメッセージが表示されます。

続行する最善の方法が何であるかはわかりません。実装の他の場所で使用できる辞書または配列を返すことを考えています。または、元の配列を返し、別の場所で解析します。

詳細については、他のスレッドを確認してください。

于 2009-12-05T06:50:59.847 に答える