Я пытаюсь работать с Amazon Web Serivces SDK для iOS под названием AWSAppSync.Я нашел хорошие инструкции для Swift .Я постараюсь сделать этот вопрос более общим для всех проблем моста Obj-c / Swift:
Для файла AppDelegate.Swift есть фрагмент кода.Тем не менее, мой AppDelegate находится в Objective-C.Я поместил его в функцию (называемую awsConfig) в файле Swift, сослался на файл в Bridging-Header.h и вызвал функцию в файле Swift из моего AppDelegate.m:
// AppDelegate.m
#import "<ProductModuleName>-Swift.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
appsyncer *syncClass = [appsyncer new];
[syncClass awsConfig];
return YES;
}
А вот фрагмент внутри файла Swift.
// SwiftAppDelegateExtension.Swift
var appSyncClient: AWSAppSyncClient?
do {
// You can choose the directory in which AppSync stores its persistent cache databases
let cacheConfiguration = try AWSAppSyncCacheConfiguration()
// AppSync configuration & client initialization
let appSyncServiceConfig = try AWSAppSyncServiceConfig()
let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: appSyncServiceConfig,
cacheConfiguration: cacheConfiguration)
appSyncClient = try AWSAppSyncClient(appSyncConfig: appSyncConfig)
} catch {
print("Error initializing appsync client. \(error)")
}
Когда я хочу использовать его в другом файле Swift, например:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appSyncClient = appDelegate.appSyncClient
Я получаю ошибку:
(!) Значение типа 'AppDelegate 'не имеет члена' appSyncClient '
Почему это не работает?И что может быть лучшим способом решения этой проблемы, если мой обходной путь слишком уродлив?