BRAOfficeDocumentPackage 未声明的类型

BRAOfficeDocumentPackage undeclared type

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

这是我尝试的解决方案。我遇到了同样的问题,并确定这是由于桥接 header 未被读取,并被静默跳过。

我是这样解决的:无论我添加了 "Release" 设置,我都添加了相同的 "Debug" 设置。

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

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


演示 Swift Excel Xlsx Reader 作者

XlsxReaderWriter 是一个 Objective-C 库,可与 Excel OpenXml 文件 (XLSX) 一起使用。

创建此演示

创建一个新项目。

获取存储库:

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

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

Demo Swift Xsls Reader Writer/XlsxReaderWriter

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

添加依赖:

  • 目标 -> 演示 -> 构建阶段 -> 目标依赖项
  • 添加 XslxReaderWriter -> XslxReaderWriter

Link 二进制文件:

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

Linking:

  • 项目 -> 演示 -> 构建设置 -> Linking -> 其他 Linker 标志
  • ->(调试和发布)-> (+) -> 任何架构 |任何 SDK
  • 添加:-all_load

搜索路径:

  • 项目 -> 演示 -> 构建设置 -> 搜索路径 -> 用户 Header 搜索路径
  • ->(调试和发布)-> (+) -> 任何架构
  • 将其设置为:$(SRCROOT)/XlsxReaderWriter/ 而不是 $(SRCROOT)/XlsxReaderWriter/XlsxReaderWriter/
  • Select "recursive".

桥接Header:

  • 将新文件添加到 Xcode(文件 > 新建 > 文件),然后 select“源”并单击“Header 文件”。
  • 我们喜欢文件名Bridge.h
  • 添加此文本:#import "XlsxReaderWriter-swift-bridge.h"

添加网桥:

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

验证:

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

加载 Excel 文件

使用您自己的 Excel 软件或任何 Excel-compatible 软件创建 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"。