2012-05-07 14 views
0

現在、プロファイルフィードを取得してUITableViewに配置するiOS用のFacebookアプリケーションを作成しています。今すぐ右Facebook、iOS SDK

ときに表示ロード:

[facebook requestWithGraphPath:@"me/feed" andDelegate:self]; 

とに - (無効)要求:(FBRequest *)要求didLoad:(ID)結果、私が持っている:

NSArray *messagesFBData = [result objectForKey:@"data"]; 
NSMutableArray *friendIds = [NSMutableArray arrayWithCapacity:messagesFBData.count]; 
NSMutableArray *fromData = [NSMutableArray arrayWithCapacity:messagesFBData.count]; 
NSMutableArray *imagesLocal = [NSMutableArray arrayWithCapacity:messagesFBData.count]; 
for (int x = 0; x < messagesFBData.count; x++) { 
    if ([(NSDictionary *)[messagesFBData objectAtIndex:x] objectForKey:@"message"] != nil) { 

     [friendIds addObject:[((NSDictionary*)[messagesFBData objectAtIndex:x]) objectForKey:@"message"]]; 
     NSLog(@"loop Log: %@", [(NSDictionary *)[messagesFBData objectAtIndex:x] objectForKey:@"message"]); 
     [fromData addObject:[((NSDictionary*)[messagesFBData objectAtIndex:x]) objectForKey:@"from"]]; 
     NSLog(@"%@", [((NSDictionary*)[messagesFBData objectAtIndex:x]) objectForKey:@"from"]); 
     NSDictionary *fromDataDictionary = [fromData objectAtIndex:x]; 
     [imagesLocal addObject:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture", [fromDataDictionary objectForKey:@"id"]]]]]]; 
      NSLog(@"facebook ID: %@", [fromDataDictionary objectForKey:@"id"]); 
    } else 
     { 
      NSLog(@"Nil Called");     
     } 

} 

// don't forget to call loadData for your tableView 
messages = friendIds; 
images = imagesLocal; 
NSLog(@"Equalized"); 
self.facebookTableView.delegate = self; 
NSLog(@"Delegate Set"); 
[facebookTableView reloadData]; 

イメージがありますグローバルな配列なので、 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathにアクセスできます。

がそうで - (UITableViewCellの*)のtableView:(のUITableView *)のtableView cellForRowAtIndexPath:(NSIndexPath *)indexPath、私が持っている:ときに、ユーザー

NSLog(@"Cell For Row Called"); 
UITableViewCell *cell = [tableView 
         dequeueReusableCellWithIdentifier:@"messageCell"]; 
NSString *story = [messages objectAtIndex:indexPath.row]; 
cell.textLabel.text = story; 

UIImage *image = [images objectAtIndex:indexPath.row]; 
cell.imageView.image = image; 

cell.alpha = 1; 
return cell; 

をだから私はと恐ろしい時間を過ごしています質問です壁に写真やビデオを投稿します。どうすればそれを処理できますか?私はテーブルビュー自体に画像/ビデオを表示したいと思います。今、ちょうどクラッシュします。どんな助けでも大歓迎です。

おかげで、どのような点で Virindh Borra

答えて

0

それがクラッシュしていますか?コードにブレークポイントを配置しましたか? UIImageをimagesLocal配列に追加すると、 "https://graph.facebook.com/%@/picture"のパスに有効な画像が含まれていますか?

+0

今すぐクラッシュするのは、メッセージアレイが壁ポストに画像を読み込んでいるのに、Facebookが返す「メッセージ」オブジェクトではなく画像がある場合です。 https://graph.facebook.com/%@/pictureは私がテーブルポストのデフォルトイメージビューのイメージを設定したものです。ポストを投稿した人のイメージです。 – user1320885

+0

配列に文字列と画像の両方が含まれていて、コードで現在文字列の大文字と小文字しか処理していないと言っていますか?私がそれを正しく理解すれば、次のようなことができます: if([element isKindOfClass:[NSString class]]){ // Facebookメッセージのハンドルケース } else if([element isKindOfClass:[UIImage class]]) { // Facebook画像のハンドルケース } – bdev

+0

ありがとうございます! – user1320885

関連する問題