BRAOfficeDocumentPackage未声明的类型

时间:2016-05-26 06:24:56

标签: ios swift xcode7

作为swift / ios开发的初学者,我目前正在尝试在我的swift代码中安装此库https://github.com/renebigot/XlsxReaderWriter我按照那里指示的步骤将桥接头连接到swift但是BRAOfficeDocumentPackage仍然是未声明的类型。指示中是否有不清楚或缺失的内容?

1 个答案:

答案 0 :(得分:0)

这是我尝试解决方案。我遇到了同样的问题并且确定它是由于桥接头没有被读取而被静默跳过。

我用这种方式解决了:无论我在哪里添加“发布”设置,我都添加了相同的“调试”设置。

我的步骤和演示项目在这里: https://github.com/joelparkerhenderson/demo_swift_excel_xlsx_reader_writer

我在这里复制我的README.md,所以可以在这里搜索。

<小时/>

演示Swift Excel Xlsx Reader Writer

XlsxReaderWriter是一个使用Excel OpenXml文件(XLSX)的Objective-C库。

创建此演示

创建一个新项目。

获取存储库:

git clone --depth=1 https://github.com/renebigot/XlsxReaderWriter.git

我们将存储库放在与我们的演示项目的xcodeproject相同的文件夹中:

Demo Swift Xsls Reader Writer/XlsxReaderWriter

将XlsxReaderWriter.xcodeproj添加到您的项目中。

添加依赖项:

  • 目标 - &gt;演示 - &gt;构建阶段 - &gt;目标依赖性
  • 添加XslxReaderWriter - &gt; XslxReaderWriter

链接二进制文件:

  • 目标 - &gt;演示 - &gt;构建阶段 - &gt;链接二进制文件与库。
  • 添加libXlsxReaderWriter.a
  • 添加libz.tbd。这比官方文档所说的更新,即添加名为libz.dylib的旧版本。

链接:

  • 项目 - &gt;演示 - &gt;构建设置 - &gt;链接 - &gt;其他链接标志
  • - &GT; (调试和发布) - &gt; (+) - &gt;任何建筑物|任何SDK
  • 添加:-all_load

搜索路径:

  • 项目 - &gt;演示 - &gt;构建设置 - &gt;搜索路径 - &gt;用户标题搜索路径
  • - &GT; (调试和发布) - &gt; (+) - &gt;任何架构
  • 将其设置为:$(SRCROOT)/XlsxReaderWriter/而不是$(SRCROOT)/XlsxReaderWriter/XlsxReaderWriter/
  • 选择“递归”。

桥接标题:

  • 向Xcode添加新文件(文件&gt;新&gt;文件),然后选择“来源”并点击“标题文件”。
  • 我们喜欢文件名Bridge.h
  • 添加此文字:#import "XlsxReaderWriter-swift-bridge.h"

添加桥:

  • 项目 - &gt;演示 - &gt;构建设置 - &gt; Swift编译器 - 代码生成 - &gt; Objective-C Bridging Header
  • - &GT; (调试和发布) - &gt; (+) - &gt;任何架构|任何SDK - &gt;添加:Bridge.h

验证

  • 运行项目。
  • 它应该编译并启动一个空白模拟器。

加载Excel文件

使用您自己的Excel软件或任何与Excel兼容的软件创建Excel文件。

  • 例如,创建DemoWorkbook.xlsx并将其保存在存储库中。
  • 例如,在单元格A1中,键入单词“Alpha”。

修改ViewController.swift

import UIKit

class ViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    let documentPath: String = NSBundle.mainBundle().pathForResource("DemoWorkbook", ofType: "xlsx")!
    let spreadsheet: BRAOfficeDocumentPackage = BRAOfficeDocumentPackage.open(documentPath)
    let worksheet: BRAWorksheet = spreadsheet.workbook.worksheets[0] as! BRAWorksheet
    let string: String = worksheet.cellForCellReference("A1").stringValue()
    print(string) // The Xcode console should now show the word "Alpha"
  }

  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
  }

}

验证

  • 运行项目。
  • 它应该编译并启动一个空白模拟器。
  • Xcode控制台现在应该显示“Alpha”一词。