gpt4 book ai didi

ios - 如何将 AppDelegate Swift 代码放入 Objective-C AppDelegate 文件并使其工作?

转载 作者:行者123 更新时间:2023-11-29 05:53:44 29 4
gpt4 key购买 nike

我正在尝试使用名为 AWSAppSync 的适用于 iOS 的 Amazon Web Serivces SDK。我发现good instructions for Swift 。我将尝试使问题更普遍地适用于所有 Obj-c/Swift 桥接问题:

AppDelegate.Swift 文件有一个代码片段。然而,我的 AppDelegate 使用 Objective-C 语言。我已将其放入 Swift 文件中的函数(称为 awsConfig)中,引用 Bridging-Header.h 中的文件并从 AppDelegate.m 调用 Swift 文件中的函数:

// 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”

为什么这不起作用?如果我的解决方法太丑陋,那么解决这个问题的更好方法是什么?

最佳答案

这可能是由于您当前使用的版本所致,因为此问题可能与您正在使用的版本的问题有关。因此,首先尝试使用不同的版本,因为这种情况发生在我身上一次,而且我只是使用了旧版本,因为编译器有细微的变化,所以如果您可以尝试不同的版本,然后让我知道并确保制作一份报告您尝试过但失败的版本。

关于ios - 如何将 AppDelegate Swift 代码放入 Objective-C AppDelegate 文件并使其工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55403083/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com