Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift桥接头导入问题_Ios_Swift_Xcode6_Bridging Header_Objective C Swift Bridge - Fatal编程技术网

Ios Swift桥接头导入问题

Ios Swift桥接头导入问题,ios,swift,xcode6,bridging-header,objective-c-swift-bridge,Ios,Swift,Xcode6,Bridging Header,Objective C Swift Bridge,按照说明,我创建了一个桥接头并将其添加到我的项目中。不幸的是,发生了以下错误: :0:错误:无法将Objective-C标头'--path--to--header/…h'导入 在构建设置中,我将标题搜索路径字符串添加到桥接标题的位置,但没有任何帮助 有人遇到过这个问题吗?我也遇到过这个问题,不幸的是,它只是SDK+Xcode中的一个bug。我和WWDC的一位工程师谈了这个问题,以及我在CloudKit上遇到的其他一些问题。这些错误将在Xcode的下一个种子中解决 这是使用测试版软件的乐趣所在。

按照说明,我创建了一个桥接头并将其添加到我的项目中。不幸的是,发生了以下错误:

:0:错误:无法将Objective-C标头'--path--to--header/…h'导入

在构建设置中,我将标题搜索路径字符串添加到桥接标题的位置,但没有任何帮助


有人遇到过这个问题吗?

我也遇到过这个问题,不幸的是,它只是SDK+Xcode中的一个bug。我和WWDC的一位工程师谈了这个问题,以及我在CloudKit上遇到的其他一些问题。这些错误将在Xcode的下一个种子中解决


这是使用测试版软件的乐趣所在。

小心将文件添加到您的错误所抱怨的文件夹中! 我犯了同样的错误,如果您从Xcode创建文件,它将进入文件夹:Project->Project->Header.h

Xcode正在寻找Project->Header.h

这意味着您需要将文件放入项目文件夹(ProjectName->ProjectNameFolder)

希望有帮助;)

更新: 我不确定我是否明白你的意思,但试着用这个来解决你的问题:
1.删除迄今为止创建的所有桥接文件。
2.选择project的主文件夹,点击新建文件->iOS->头文件。
3.在创建的头文件中写入导入内容。
4.在Xcode->Build Settings中选择项目,在搜索字段中键入:bridgeing,并在键SWIFT_OBJC_bridgeing_头中输入头文件的名称或路径

如果遵循此步骤,将在正确的位置创建头文件

:我希望这会有帮助

在以下位置查找路径:

构建设置/Swift编译器-代码生成/Objective-C桥接头


并删除该文件。那你应该没事。

这可能只会影响一小部分人,但在我的例子中,我的项目使用CocoaPods,其中一个pods有一个子规范,它有自己的CocoaPods。解决方案是使用全角度导入来引用子吊舱中的任何文件

#import <HexColors/HexColor.h>

在我的例子中,这实际上是循环引用导致的错误。我在桥接头中导入了一个类,该类的头文件正在导入swift头(
-swift.h
)。我这样做是因为在Obj-C头文件中,我需要使用一个用Swift声明的类,解决方案是简单地使用
@class
声明性

因此,基本上错误是“未能导入桥接头”,上面的错误是未找到
-Swift.h
文件,上面的错误是指向特定Obj-C头文件(即视图控制器)的错误

检查这个文件时,我注意到它的头中声明了-Swift.h。将此导入移动到实现解决了此问题。所以我需要使用一个对象,让我们称之为Swift中定义的
MyObject
,所以我只是将标题改为

@class MyObject;

对于在objective-c项目中添加swift类有困难的其他人。 这对我来说很有用:

  • 创建新的swift文件。如果您希望xcode为mix swift-objective-c项目(包括brigde header.h)创建所有设置,这将使xcode提示。按是
  • 现在,添加要在项目中使用的现有swift文件
  • 在实现文件中,您将使用swift类add: #导入“YOURPROJECTNAME swift.h”。此文件由xcode为您创建。 如果您的xcode项目是myProject,那么“myProject swift.h”

  • 就这样。现在在代码中创建swift类,就像它是objective-c一样。

    对我来说,这是因为我忘了将它添加到目标的构建设置中


    我实际上在项目下创建了一个空的OSX源目标C文件(我的所有swift文件都在该文件中)


    我添加了导入,然后删除了.m文件。

    经过最初几天的努力,我终于成功地将Facebook注册集成到我的iOS应用程序中。以下是步骤(我假设您已经在计算机中安装了Facebook SDK v4.1或更高版本):

  • 在您的项目下添加Facebook框架-FBSDKCoreKit、FBSDKLoginKit
  • 不要更改构建设置,因为FB SDK v4.1及更高版本不再需要桥接头文件
  • 在ViewController.swift、AppDelegate.swift文件中导入FBSDKCorekit、FBSDKLoginKit
  • 如前所述,在pList中添加信息

  • 构建你的应用程序。哇哦!没有编译时错误

  • “我们需要告诉Xcode在哪里查找头文件我们在桥接头中列出的头文件。找到搜索路径部分,更改用户头搜索路径的项目级设置,为'Pods'目录添加一个递归条目:Pods/**”

    在其他修复中,我在尝试执行产品->归档时遇到了错误。原来我有这个:

    Objective-C Bridging Header
      Debug (had the value)
      Release (had the value)
        Any architecture | Any SDK (this was blank - problem here!)
    

    在最后一行设置之后,它工作了。

    我从cocoapods的bridgin头文件中导入了一些文件,但方式不正确

    而不是进口

    #import <SomeCocoaPod/SomeCocoaPod.h>
    

    这是我的一个巨大错误

    将临时Objective-C文件添加到项目中。你可以给它取任何你喜欢的名字

    选择“是”以配置Objective-C桥接标头

    删除刚刚创建的临时Objective-C文件

    在刚刚创建的projectName bridgeing Header.h文件中,添加以下行:

    “#导入

    编辑AppDelegate.swift文件:

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
        GMSServices.provideAPIKey("AIza....") //iOS API key
    
        return true
    }
    

    对于完整示例

    对于我来说,在添加框架时,没有在目标路径中选择“复制项目(如果需要)”。选择此选项后,只需重新添加框架即可

    对于我来说,删除派生数据修复了它,我注意到即使我从旧提交中签出,同样的问题也会发生

    #import "SomeCocoaPod.h"
    
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    
        GMSServices.provideAPIKey("AIza....") //iOS API key
    
        return true
    }
    
    Uncategorized: Target 'Pods' of project 'Pods' was rejected as an implicit dependency for 'Pods.framework' because its architectures 'arm64' didn't contain all required architectures 'armv7 arm64'