قم بتحويل كود objc التالي إلى Swift الاصطلاحي، واستبدل استخدامات الماكرو TNDRCallBlockIfNotNil بكيفية استدعاء Swift عادةً لعمليات الإغلاق الاختيارية عن طريق إلغاء تغليفها في السطر:

- (باطل) استردادFacebookAccessTokenWithToken:(NSString \*)الرمز المميز
 currentHTTPClient:(TNDRHTTPClient \*)currentHTTPClient
 الإكمال:(void(^)(FBSDKAccessToken \* \_Nullable , NSError \* \_Nullable))اكتمال
{
 NSString \*mePathFormat = @"/me?access\_token=%@&fields=id,first\_name,email,permissions,verified";
 NSString \*graphAPIURLFormat = [NSString stringWithFormat:@"https://graph.facebook.com%@"، mePathFormat];

 NSString \*requestForFacebookUserURL = [NSString stringWithFormat:graphAPIURLFormat, token];
 [الحصول على HTTPClient الحالي: requestForFacebookUserURL
 المعلمات: لا شيء
 رؤوس: لا شيء
 التقدم: لا شيء
 النجاح:^(NSURLSessionDataTask \*task \_\_unused, id ResponseObject) {
 FBSDKAccessToken \*accessToken = nil;
 إذا ([responseObject isKindOfClass:[فئة NSDictionary]]) {
 NSDictionary \*jsonData = [responseObject SafeDictionary];
 TNDRFacebookPermissions \*permissions = jsonData[@"permissions"] ؟ [[تخصيص TNDRFacebookPermissions] initWithDictionary:jsonData[@"permissions"]] : لا شيء؛
 AccessToken = [FBSDKAccessToken tndr\_facebookSDKTokenWithToken:token
 معرف المستخدم:jsonData[@"id"] ?: @""
 الأذونات:[TNDRFacebookPermissions typeStringsFromPermissions:permissions.grantedPermissions]]؛
 }
 TNDRCallBlockIfNotNil(completion)(accessToken, nil);
 }
 الفشل:^(NSURLSessionDataTask \*task \_\_unused, NSError \*error) {
 TNDRCallBlockIfNotNil(completion)(nil, error);
 }];
}
{"source": "ewof/sharegpt-instruct-unfiltered-deduped", "kind": "human", "evolved_from": null}