Ios 在Swift类中使用Dropbox或任何第三方框架
我正在尝试编写一个使用Dropbox Sync API的swift类,但无法让swift看到框架。我的项目中的objective C可以成功地使用Dropbox框架。我有一个桥接头,它似乎是在项目设置和引用中正确设置的。但在我的swift文件中,我似乎什么也没做 这个目标C代码在我的项目中起作用,我正试图在Swift中复制它:Ios 在Swift类中使用Dropbox或任何第三方框架,ios,xcode,swift,dropbox-api,Ios,Xcode,Swift,Dropbox Api,我正在尝试编写一个使用Dropbox Sync API的swift类,但无法让swift看到框架。我的项目中的objective C可以成功地使用Dropbox框架。我有一个桥接头,它似乎是在项目设置和引用中正确设置的。但在我的swift文件中,我似乎什么也没做 这个目标C代码在我的项目中起作用,我正试图在Swift中复制它: #import <Dropbox/Dropbox.h> ... if ([DBAccountManager sharedManager].linkedAc
#import <Dropbox/Dropbox.h>
...
if ([DBAccountManager sharedManager].linkedAccount == nil) {
[[DBAccountManager sharedManager] linkFromController:self];
[[DBAccountManager sharedManager] addObserver:self block:^(DBAccount *account) {
DBFilesystem *fileSystem = [[DBFilesystem alloc] initWithAccount:account];
[DBFilesystem setSharedFilesystem:fileSystem];
}];
有没有想过如何让我的swift代码能够看到Dropbox框架?我没有设法解决这个问题。相反,我将Dropbox框架的所有用法抽象为目标C类,并在我的swift代码中使用这些类,从而解决了这个问题。事实上,我找到了这样做的方法: 创建一个伪.m文件,这样XCode将要求您创建一个桥接头,然后删除.m文件 在“项目生成设置”下,将DropboxSDK.framework添加到带有库的链接二进制文件下 打开桥接头文件并将其写入导入 XCode不会编译您的代码,每次打开Swift文件时,SourceKit服务可能会崩溃 这是因为Dropbox SDK中至少在Swift环境中存在两个错误: 在Finder中打开之前链接的DropboxSDK.framework,然后导航到Headers文件夹 打开文件DBQuota.h并在@interface之前添加导入 打开文件DBSession+iOS.h并在@interface之前添加导入 现在,您可以在Swift文件中使用Dropbox SDK类 这将避免您在每个类上创建Objective-C包装器
import UIKit
class PiecesListTableViewController : UITableViewController {
override func loadView() {
super.loadView()
// This fails with unresolved identifier 'DBAccountManager'
let accountManager = DBAccountManager.sharedManager
// As does this
let accountManagerNew = DBAccountManager(appKey:"", secret:"")
}
}