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"。
作为 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"。