使用XML解析Swift库时,Playgrounds会因“未知错误”而崩溃

我正在使用
Kanna框架开发一个涉及一些XML解析的自定义框架.每当我尝试将我的框架导入游乐场时,游乐场崩溃时会出现以下错误:

Playground execution failed: expression failed to parse, unknown error
* thread #1: tid = 0x4e9448, 0x00000001074bf360 com.apple.dt.Xcode.PlaygroundStub-macosx`executePlayground, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
  * frame #0: 0x00000001074bf360 com.apple.dt.Xcode.PlaygroundStub-macosx`executePlayground
    frame #1: 0x00000001074bd22a com.apple.dt.Xcode.PlaygroundStub-macosx`-[PlaygroundViewBridgeService execute] + 90
    frame #2: 0x00007fffb4fc03ec CoreFoundation`__invoking___ + 140
    frame #3: 0x00007fffb4fc0271 CoreFoundation`-[NSInvocation invoke] + 289
    frame #4: 0x00007fffb4fd97a6 CoreFoundation`-[NSInvocation invokeWithTarget:] + 54
    frame #5: 0x00007fffc86ca95b ViewBridge`__68-[NSVB_ViewServiceImplicitAnimationDecodingProxy forwardInvocation:]_block_invoke + 47
    frame #6: 0x00007fffc86e9f4c ViewBridge`__runAnimationGroup_block_invoke + 21
...

我正在开发的框架工作正常(它构建和单元测试按预期运行),但是在操场上无法使用它是一件痛苦的事.

我已经提供了一个示例项目,其中包含有关复制问题的说明以及GitHub上的完整堆栈跟踪:https://github.com/noahcgreen/XMLTest.如果从“XMLTest.swift”源文件中删除了导入Kanna,则错误消失.

到目前为止,我已经尝试过:

>使用Fuzi框架代替Kanna,
>使用CocoaPods而不是Carthage安装,
>在我的设备上更新libxml2(使用Homebrew),和
>从一个干净安装XCode的不同(和新)设备开始,

一切都没有成功.我在这里结束了我的智慧.我究竟做错了什么?

最佳答案 好的自定义框架,首先你需要让你在游乐场工作

>打开游乐场,然后选择文件>另存为工作区
>打开游乐场的工作区
>在工作区中选择文件 – >添加然后添加自定义框架工作.

>导入框架工作

来自苹果的笔记

重要说明:自定义框架在操场中工作需要满足以下条件:

框架与操场位于同一工作区中.

该框架已经建成.

如果它是iOS框架,则它是为64位运行时目标构建的.

工作空间包含至少一个构建目标的活动方案.

如果它是Objective-C框架,则它是在将Defines Module(DEFINES_MODULE)构建设置设置为Yes的情况下构建的.

http://help.apple.com/xcode/mac/8.2/#/devc9b33111c我得到了我的信息.希望这可以帮助.

编辑:

#import <Cocoa/Cocoa.h>
#import <Kanna/Kanna.h>


//! Project version number for XMLTest.
FOUNDATION_EXPORT double XMLTestVersionNumber;

//! Project version string for XMLTest.
FOUNDATION_EXPORT const unsigned char XMLTestVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import <XMLTest/PublicHeader.h>

好的老兄在xmltest.h中尝试这个

点赞