标签: bridging-header

我可以在同一个Xcode项目中使用Swift,Objective-C,C和C++文件吗?

是否可以在同一个项目中使用所有4种语言,如果是,如何使用?

这个问题有类似的问题:我可以将Swift与C++混合使用吗?就像Objective-C .mm文件一样,接受的答案是否定的.

利用Bridging Header充分,.h不包含C++报表,Objective-C包装时.h不包含C++,.mm文件做实际的包装C++类,并且.swift,可以在4种语言(5如果包括Objective-C++)建立并链接到一个单一的可执行文件?


c c++ objective-c swift bridging-header

61
推荐指数
1
解决办法
2万
查看次数

Cocoapods 1.0:找不到头文件

我刚尝试从cocoapods 0.39.x更新到Cocoapods 1.0.运行

pod安装

从终端导致没有警告.一切似乎都很正常.但是,当我尝试构建我的项目时,它会输出:

找不到AFNetworking/AFNetworking.h文件

我的pod文件看起来像这样(还有一些依赖项,但我只列出了它的一部分):

platform :ios, '8.0'
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'

target 'MyApp' do
    pod 'AFNetworking', '~> 2.6'
    pod 'BEMCheckBox'
    pod 'ActionSheetPicker-3.0', '~> 2.0.5'
    pod 'SCLAlertView'
    pod 'DZNEmptyDataSet'
    pod 'SSZipArchive'
end


target 'MyAppTests' do

end
Run Code Online (Sandbox Code Playgroud)

由于一些项目是用Objective-C编写的,我创建了一个桥接头:

#import <AFNetworking/AFNetworking.h>
#import <ActionSheetPicker_3_0/ActionSheetPicker.h>
#import <SSZipArchive/SSZipArchive.h>
#import <DZNEmptyDataSet/UIScrollView+EmptyDataSet.h>
Run Code Online (Sandbox Code Playgroud)

我明确地包含$(inherited)Header Search PathsUser Header Search paths,而Framework Search paths但错误没有消失.有人知道如何解决这个问题吗?

ios cocoapods swift bridging-header

29
推荐指数
1
解决办法
2万
查看次数

"文件的非可移植路径"File.h";指定路径与磁盘上的文件名不同"更新为Xcode 8.3后桥接头中的警告

我更新到Xcode 8.3和Swift 3.1并在我的桥接头文件中得到此警告,引用Objective-C头文件:

文件"File.h"的非可移植路径; 指定的路径与磁盘上的文件名不同

我该如何解决这个问题?

xcode objective-c ios swift bridging-header

19
推荐指数
1
解决办法
2万
查看次数

Xcode 10无法为桥接头发出预编译头

嗨,我在Xcode 10上遇到了一个非常恼人的错误

1 error generated. <unknown>:0: error: failed to emit precompiled header '/Users/me/Library/Developer/Xcode/DerivedData/APP-hlczpckeselwrtaqjcbxdpoiogkj/Build/Intermediates.noindex/PrecompiledHeaders/APP-Bridging-Header-swift_35K3KO8G70VCD-clang_3DGF15CYP79L0.pch' for bridging header '/Users/me/Desktop/Swift/Folder/APP/APP/UNLKV2-Bridging-Header.h'

我不知道如何解决这个问题我已经尝试了一切.今天非常突然之前没有问题,但第二次我将Firebase info.plist添加到我收到此错误的项目中.我试图删除该文件,确保在"Objective-C桥接标题"中正确输入了头文件的名称,然后输入,因为
$(PROJECT_DIR)/$(PROJECT_NAME)/$(PROJECT_NAME)-Bridging-Header.h
我已经清理并多次构建项目并重新安装了所有的pod.

除此之外,我也得到一个错误

找不到JPSVolumeButtonHandler/JPSVolumeButtonHandler.h'文件

我真的很感激,如果有人能帮我解决这个问题,我一直在每一个帖子和论坛上一整天都在寻找,没有什么对我有用.如果您需要有关此问题的更多信息,请告诉我们.

xcode objective-c ios swift bridging-header

13
推荐指数
1
解决办法
5535
查看次数

Facebook SDK Swift - 使用未声明的标识符

我正在Use of undeclared identifier使用我使用的每个Facebook对象

遵循本教程: 教程:如何在FACEBOOK SDK 4.1.X for SWIFT中分享

但我有以下错误:

在此输入图像描述

我通过cocoapods添加了Facebook框架:

pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
Run Code Online (Sandbox Code Playgroud)

它已成功安装

在此输入图像描述

我添加了桥接头

#ifndef Bridging_Header_h
#define Bridging_Header_h

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>

#endif /* Bridging_Header_h */
Run Code Online (Sandbox Code Playgroud)

桥接头连接:

在此输入图像描述

我已经配置了我的.plist

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb*****</string>
            </array>
        </dict>
    </array>
    <key>FacebookAppID</key>
    <string>*****</string>
    <key>FacebookDisplayName</key>
    <string>*****</string>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>facebook.com</key>
            <dict>
                <key>NSIncludesSubdomains</key> <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
            </dict>
            <key>fbcdn.net</key>
            <dict>
                <key>NSIncludesSubdomains</key> <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  <false/>
            </dict>
            <key>akamaihd.net</key>
            <dict>
                <key>NSIncludesSubdomains</key> <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
            </dict>
        </dict>
    </dict>
Run Code Online (Sandbox Code Playgroud)

这是代码:

let content : FBSDKShareLinkContent = …
Run Code Online (Sandbox Code Playgroud)

facebook objective-c ios swift bridging-header

11
推荐指数
2
解决办法
5006
查看次数

8
推荐指数
1
解决办法
639
查看次数

桥接头有什么用?我们应该避免使用桥接头吗?

桥接头有什么用?

它只是在同一个项目中使用Objective-C和Swift代码吗?

我们应该避免使用桥接头吗?

比方说,如果有两个非常相似的第三方图书馆; 其中一个在Objective-C中,另一个在Swift中.我们应该使用Swift库还是使用Objective-C库.使用桥接头是否有任何缺点?

objective-c swift bridging-header

8
推荐指数
1
解决办法
1825
查看次数

仅当iOS11可用时才包含类的扩展名

我试图扩展一个用Obj-C编写的类,并包含一个用Swift编写的扩展,使其符合UIDropInteractionDelegate,如下所示:

@available(iOS 11.0, *)
extension NoteEditViewController: UIDropInteractionDelegate {
    @available(iOS 11.0, *)
    public func dropInteraction(_ interaction: UIDropInteraction, sessionDidUpdate session: UIDropSession) -> UIDropProposal {
        let operation: UIDropOperation
        if session.localDragSession == nil {
            operation = .forbidden
        } else {
            // If a local drag session exists, we only want to move an
            // existing item in the pin board to a different location.
            operation = .forbidden
        }
        return UIDropProposal(operation: operation)
    }

    @objc(setupDropInteractions)
    @available(iOS 11.0, *)
    func setupDropInteractions() {
        // Add drop …
Run Code Online (Sandbox Code Playgroud)

drag-and-drop swift bridging-header objc-bridging-header ios11

8
推荐指数
3
解决办法
7793
查看次数

如何找到Bridging-Header.h的路径 - Swift,Xcode

这里我附上了创建的头文件的截图

我在xcode中创建了一个新的头文件,并将其命名为(projectname)-Bridging-Header.h.但我无法找到路径并使其发挥作用.如何找到文件的路径?

在此输入图像描述

xcode objective-c ios swift bridging-header

7
推荐指数
1
解决办法
1833
查看次数

Swift 桥接头 - 新目标

我有一个 Objective-c 项目,其中一个类在 Swift 中实现。该项目有两个目标:A 和 B。对于这两个目标,Xcode 创建了桥接头文件A-Swift.hB-Swift.h,并且应用程序构建并运行这两个目标没有任何问题。

我添加了两个新目标,C 和 D(这次没有创建桥接头文件)。如果我构建 A 和 B 没有问题,但如果我构建 C 和 D,则构建未完成,因为它找不到B-Swift.h.

目标 C 只是 A 的副本,而 D 是 B 的副本,当然在 plist 文件中更新了一些属性。

有什么建议吗?

xcode objective-c ios swift bridging-header

6
推荐指数
1
解决办法
1869
查看次数