是否可以在同一个项目中使用所有4种语言,如果是,如何使用?
这个问题有类似的问题:我可以将Swift与C++混合使用吗?就像Objective-C .mm文件一样,接受的答案是否定的.
利用Bridging Header充分,.h不包含C++报表,Objective-C包装时.h不包含C++,.mm文件做实际的包装C++类,并且.swift,可以在4种语言(5如果包括Objective-C++)建立并链接到一个单一的可执行文件?
我刚尝试从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 Paths的User Header Search paths,而Framework Search paths但错误没有消失.有人知道如何解决这个问题吗?
我更新到Xcode 8.3和Swift 3.1并在我的桥接头文件中得到此警告,引用Objective-C头文件:
文件"File.h"的非可移植路径; 指定的路径与磁盘上的文件名不同
我该如何解决这个问题?
嗨,我在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'文件
我真的很感激,如果有人能帮我解决这个问题,我一直在每一个帖子和论坛上一整天都在寻找,没有什么对我有用.如果您需要有关此问题的更多信息,请告诉我们.
我正在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) 我正在尝试运行https://github.com/kwkhaw/quick-start-ios-swift这个项目.但在编译代码时遇到此错误.

桥接头有什么用?
它只是在同一个项目中使用Objective-C和Swift代码吗?
我们应该避免使用桥接头吗?
比方说,如果有两个非常相似的第三方图书馆; 其中一个在Objective-C中,另一个在Swift中.我们应该使用Swift库还是使用Objective-C库.使用桥接头是否有任何缺点?
我试图扩展一个用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
我有一个 Objective-c 项目,其中一个类在 Swift 中实现。该项目有两个目标:A 和 B。对于这两个目标,Xcode 创建了桥接头文件A-Swift.h和B-Swift.h,并且应用程序构建并运行这两个目标没有任何问题。
我添加了两个新目标,C 和 D(这次没有创建桥接头文件)。如果我构建 A 和 B 没有问题,但如果我构建 C 和 D,则构建未完成,因为它找不到B-Swift.h.
目标 C 只是 A 的副本,而 D 是 B 的副本,当然在 plist 文件中更新了一些属性。
有什么建议吗?