2009-07-29 7 views
2

MGTwitterEngineをダウンロードしてiPhoneプロジェクトに追加しました。それはNSLogにダンプすることで私が知ることができる彫像を接続しています。しかし、私はどのように私はテーブルにそれらを追加することができますコールを解析する必要がどのように把握することはできません。彼らは、NSStringのとして返され、次のようになりされています。誰もが自分のプロジェクトでそれを使用する方法を私に伝えることができ、これを使用しMGTwitterEngineとiPhone

 { 
    "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; 
    }; 

誰を?

おかげ

+0

これは標準のJSONです。 これは、Cocoa/Cocoa Touch用のJSONパーサです。http://code.google.com/p/json-framework/ – Hunter

答えて

8

あなたはあなたのコンソールに見ていることはNSDictionaryのとないのNSStringののNSLogです。マットGemmellのMGTwitterEngine Readmeから:

これらの方法に送られた値は、それぞれ、全てのサブ辞書と各ステータスまたはユーザまたは直接メッセージのNSDictionaryの含有NSArrays、必要に応じて(例えば、タイムラインの方法は、通常のステータスを返していますその中にその状態を掲示したユーザに関する情報を与えるサブ辞書がある)。

つまり、あなたのNSLog()文は、実際に辞書であり、あなたはを呼び出してフィールドにアクセスすることができますに渡されたどんなオブジェクト:

記録がオブジェクトである
NSString *createdAtDate = [record valueForKey:@"created_at"]; 
NSString *source = [record valueForKey:@"source"]; 
// etc... 

ユーザーフィールドはサブディクショナリであることに注意してください。あなたが実際にNSArrayは、あなたのテーブルビューのデータソースとして要求で返され、その後、ちょうどあなたがあなたの-cellForRowAtIndexPathテーブルビューのデリゲートにインデックスで必要なものを抽出し使用することができ

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

:あなたはそれをこのようにアクセスします。

よろしく、ここで自分の道を見つけるかもしれない他の誰のために

+0

Mattに感謝します。素晴らしい答え。NSArrayをテーブルのデータソースとして使用し、必要なものを抽出することによって、あなたが意味するものの例を教えてください。 – Xcoder

0

は、ここで結果をparceする一つの方法です。 (初心者からは、これが標準であるか正しい方法であるかを数えないでください)

キーは、適切な委任方法で辞書を使用することです。このトピックについては、Matt Longのサンプルコードin another threadを参照してください。

このような何かparceするには、次の彼の例では、デリゲートメソッドでは、これです

[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 [email protected]"from_user_id"]; 
     // ... 
     NSString *text = [result [email protected]"text"]; 

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

これはあなたに、「ユーザー名(ユーザーID)になる非常に簡単なメッセージを与えるだろう:メッセージ "。

私はどのような最善の方法を実行するか分からない、私はあなたの実装で他の場所で使用できる辞書や配列を返すと思っています。あるいは、元の配列を返し、それを別の場所で解析してください。

詳細は他のスレッドをご覧ください。

関連する問題