私はこれまでに何の手がかりも持っていないので、適切な方法で私を助けることができる誰かにそれを与えています.実際、私はFQLクエリを使用してFacebookの友達の詳細を取得しました。申し訳ありませんが、写真はURLの形式で取得されます。前の段階で、グラフAPI(オブジェクト)を使用して友達の詳細を取得しようとしましたが、ここで友達の数だけサーバーにヒットします.時間がかかるためFB の友達が同期されるように、FQL に移行しましたが、これも私を悩ませています。1 つのクエリですべての友達の写真を取得しているにもかかわらず、それらを画像に変換してドキュメント フォルダーにすばやく保存することができません。
私はFacebookの同期ボタンを持っています.そのボタンアクションで、友人の詳細をデータベースに保存/更新し、同時に友人の写真をドキュメントに保存しています.理解するための私の実装コードです:
-(void)saveUpdateFriendDetails
{
for (int index = 0; index<[friendsDetailsArray count]; index++)
{
//Save or update friends details to db
//Fetch friends picture url,convert to image and save to documents folder
NSString *friendPictureString = [[self.friendsDetailsArray valueForKey:kPicture]objectAtIndex:index];
NSURL *friendPhotoUrl = [NSURL URLWithString:friendPictureString];
NSData *data = [NSData dataWithContentsOfURL:friendPhotoUrl];
UIImage *friendProfilePicture = [UIImage imageWithData:data];
NSString *filename = [facebookID stringByAppendingString:kPNG];
// Get the path of the app documents directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// Append the filename and get the full image path
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:filename];
// Now convert the image to PNG and write it to the image path
NSData *imageData = UIImagePNGRepresentation(friendProfilePicture);
[imageData writeToFile:savedImagePath atomically:NO];
}
GCDとAsyncImageViewを使用してバックグラウンドでプロセスを実行しようとしましたが、それでもプロセスは同じままであるため、同じ時間がかかります(最終的にバックグラウンドで実行されているのが唯一の違いです)。
Facebookの同期プロセスに影響を与えないように、友達の写真のURLを写真にすばやく変換してドキュメントフォルダーに保存する方法はありますか.
注: 写真をドキュメントに保存しないと、800 人の友人を同期するのに約 20 ~ 30 秒かかり、画像を保存する場合も 2 ~ 3 分かかります。
誰かが私を案内してくれませんか。
事前に感謝します:)