【问题标题】:Objective-C Pod doesn't read code properly from .swift filesObjective-C Pod 无法从 .swift 文件中正确读取代码
【发布时间】:2020-02-20 17:37:58
【问题描述】:

我在我的 Swift 项目中使用 ObjC pod。

我将库导入到我的 .swift 文件中。

ObjC 项目有 Delegate 和 DataSource。

我实现了使用的方法没有任何错误,但是当我构建和运行项目时,应用程序崩溃并显示数据源的方法尚未实现。

reason: ''numberOfContacts' Not implemented'

ObjC pod 似乎没有读取我的 .swift 文件中实现的方法。

它执行这一行:

- (NSInteger)mev_horizontalContactsNumberOfContacts
{
    if ([_dataSource respondsToSelector:@selector(numberOfContacts)]) {
        return [_dataSource numberOfContacts];
    } else {
        NSAssert([_dataSource respondsToSelector:@selector(numberOfContacts)], @"'numberOfContacts' Not implemented");
        return 0;
    }
}

这是 pod:https://github.com/manuelescrig/MEVHorizontalContacts

【问题讨论】:

    标签: objective-c swift cocoapods


    【解决方案1】:

    检查您的 pod 文件是否有 use_frameworks!,如果是,则只需导入 YOUR_OBJC_SDK 即可。

    // Podfile
    use_frameworks!
    pod 'YOUR_OBJC_SDK'
    

    如果它没有use_frameworks!,那么您可能需要将Bridging-Header 添加到import 所有ObjectiveC 框架。

    在您的项目构建设置中转到Swift Compiler - Code Generation。在项目根文件夹中的Objective C Bridging Header 旁边添加桥接头文件的路径。应该是Your_Project/YOUR_Bridging-Header.h 文件。

    【讨论】:

    • 它有 use_frameworks!我也尝试使用 Bridging-Header,但仍然崩溃... Swift 5 Xcode 11
    • 你能粘贴你的桥接头文件吗?检查我在构建设置中添加头文件的更新答案。
    • #ifndef Header_h #define Header_h #import "MEVHorizo​​ntalContacts.h" #endif
    • 您是否尝试在构建设置中添加头文件?
    • 我没有创建这个项目,我从 GitHub 下载了它,并在我的班级中添加了 MEVHorizo​​ntalContactsDelegate、MEVHorizo​​ntalContactsDataSource。然后我添加了需要使用 MEVHorizo​​ntalContacts 的方法。 func numberOfContacts() -> Int {...} , func contact(at index: Int) -> MEVHorizo​​ntalContactsCell! {...} , func contactSelected(at index: Int) {...} , func numberOfItems(atContactIndex index: Int) -> Int {...} , func item(_ item: Int, atContactIndex index: Int) -> MEVHorizo​​ntalContactsCell! {...} , func item(_ item: Int, selectedAtContactIndex index: Int) {...}
    猜你喜欢
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多