Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
Objective c 尝试将Swift与Coda2插件的Obj C头一起使用。获取错误:架构x86_64的未定义符号_Objective C_Cocoa_Swift_Coda - Fatal编程技术网

Objective c 尝试将Swift与Coda2插件的Obj C头一起使用。获取错误:架构x86_64的未定义符号

Objective c 尝试将Swift与Coda2插件的Obj C头一起使用。获取错误:架构x86_64的未定义符号,objective-c,cocoa,swift,coda,Objective C,Cocoa,Swift,Coda,正在尝试使用swift为Coda 2.5构建插件。我遇到以下错误: Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_CodaPlugInsController", referenced from: _get_field_types_PowPlugInViewController in PowPlugInViewController.o _get_field_types_PowPlugIn in Pow

正在尝试使用swift为Coda 2.5构建插件。我遇到以下错误:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_CodaPlugInsController", referenced from:
      _get_field_types_PowPlugInViewController in PowPlugInViewController.o
      _get_field_types_PowPlugIn in PowPlugin.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我已清理生成文件夹。 我已创建导入语句并将其添加到项目名称bridgeing swift.h

下面是我的项目

codapluginscoller.h

//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "CodaPlugInsController.h"
你可以在这里找到这个文件。 描述: 此标头提供了实现Coda的协议和设施 基于文本的语法验证器和边栏插件

CodaPow桥接头.h

//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "CodaPlugInsController.h"
PowPlugin.swift

import Foundation

class PowPlugIn: NSObject, CodaPlugIn, CodaSidebarPlugIn {
    let PowBundle: CodaPlugInBundle
    let PowController: CodaPlugInsController

    required init(plugInController: CodaPlugInsController, plugInBundle: CodaPlugInBundle) {
        self.PowBundle = plugInBundle
        self.PowController = plugInController
        super.init()
    }

    func name() -> String {
        return "Coda Pow"
    }

    func didLoadSiteNamed(name: String!) {

    }

    func viewController() -> NSViewController {
       return PowPlugInViewController(nibName: "PowPlugInView", plugInBundle: PowBundle, plugInController: PowController)!
    }
}
import Foundation

class PowPlugInViewController: NSViewController, CodaSidebarViewController {
    let PowController: CodaPlugInsController
    init?(nibName: String, plugInBundle: AnyObject, plugInController: CodaPlugInsController) {
        self.PowController = plugInController
        super.init(nibName: nibName, bundle: plugInBundle as? NSBundle)
    }
    //  Xcode Says I need this.
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
PowPlugInViewController.swift

import Foundation

class PowPlugIn: NSObject, CodaPlugIn, CodaSidebarPlugIn {
    let PowBundle: CodaPlugInBundle
    let PowController: CodaPlugInsController

    required init(plugInController: CodaPlugInsController, plugInBundle: CodaPlugInBundle) {
        self.PowBundle = plugInBundle
        self.PowController = plugInController
        super.init()
    }

    func name() -> String {
        return "Coda Pow"
    }

    func didLoadSiteNamed(name: String!) {

    }

    func viewController() -> NSViewController {
       return PowPlugInViewController(nibName: "PowPlugInView", plugInBundle: PowBundle, plugInController: PowController)!
    }
}
import Foundation

class PowPlugInViewController: NSViewController, CodaSidebarViewController {
    let PowController: CodaPlugInsController
    init?(nibName: String, plugInBundle: AnyObject, plugInController: CodaPlugInsController) {
        self.PowController = plugInController
        super.init(nibName: nibName, bundle: plugInBundle as? NSBundle)
    }
    //  Xcode Says I need this.
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
我还有两个源文件。 服务器和主机。swiftShell.swift他们不使用codaplugincontroller.h中的任何类。Shell.swift文件只是一组类函数

编辑: 我可以使用swift,只要我不从codaplugincontroller.h中创建子类,也不传入已创建的对象


项目的Swift和Obj-C版本:

项目编译,因此桥接头可能不是问题

如果在链接阶段失败,编译器将无法找到当前体系结构的一组符号。 这可能意味着

1) Coda库不是为您的体系结构编译的

2) 链接器根本找不到库

我看了你的Obj-C项目,似乎尾波库不在项目中,所以我猜它是2。您可能希望以某种方式将库移动到项目中,或者在项目的“库搜索路径”中的系统其他位置添加库的路径