Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.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
Ios 带操场的相依框架_Ios_Swift_Swift Playground_Xcplayground - Fatal编程技术网

Ios 带操场的相依框架

Ios 带操场的相依框架,ios,swift,swift-playground,xcplayground,Ios,Swift,Swift Playground,Xcplayground,假设我有两个框架: MyApp.framework 扇形框架 MyApp.framework有一个故事板,它使用FancyLabels.framework中的类 如果我创建一个链接并嵌入这两个框架的应用程序目标,我可以从MyApp.framework实例化视图控制器。没问题 但是,如果我尝试在游乐场中从MyApp.framework实例化一个视图控制器,它就找不到FancyLabels.framework中的类 我的游乐场代码: //: Playground - noun: a place

假设我有两个框架:

  • MyApp.framework
  • 扇形框架
MyApp.framework有一个故事板,它使用FancyLabels.framework中的类

如果我创建一个链接并嵌入这两个框架的应用程序目标,我可以从MyApp.framework实例化视图控制器。没问题

但是,如果我尝试在游乐场中从MyApp.framework实例化一个视图控制器,它就找不到FancyLabels.framework中的类

我的游乐场代码:

//: Playground - noun: a place where people can play

import UIKit
import MyApp
import FancyLabels

let bundle = Bundle(for: MyAppViewController.self)
let storyboard = UIStoryboard(name: "Main", bundle: bundle)
let vc = storyboard.instantiateViewController(withIdentifier: "MyAppViewController")
let view = vc.view
控制台中的输出:

2017-01-22 19:18:17.016 MyPlayground[98260:3124481] Unknown class _TtC18FancyLabels11StyledLabel in Interface Builder file.
2017-01-22 19:18:17.037 MyPlayground[98260:3124481] Failed to set (styleString) user defined inspected property on (UILabel): [<UILabel 0x7fcf175017c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key styleString.
2017-01-22 19:18:17.016我的游乐场[98260:3124481]未知类\u TtC18FancyLabels11StyledLabel在接口生成器文件中。
2017-01-22 19:18:17.037我的游乐场[98260:3124481]未能在(UILabel)[setValue:forUndefinedKey:]上设置(styleString)用户定义的已检查属性:此类不符合键样式字符串的键值编码。

我也一直在努力寻找解决这一问题的最佳方法:(

我找到的最好的解决方案是创建一个空白/空的工作区,您可以在其中添加框架(只需将它们拖动到工作区,就像添加到常规项目一样),然后还可以将游乐场添加到工作区

而不是打开操场,然后打开工作区并在该上下文中使用操场

第一次在工作区中打开游乐场时,您将收到一个错误,说明找不到框架,但在运行
build
后,框架可用

另一个问题是,当您从这个工作区访问框架时,使用该框架的任何其他项目也需要关闭

如果您想查看示例设置,可以在此处查看我的项目中的“游乐场”文件夹:


我很想知道其他人是否找到了更好的方法,因为在使用工作区时必须关闭其他项目的限制非常烦人。

最终解决了这个问题。问题是我的“FancyLabels”框架使用的是通过迦太基(XCGLogger)预建的框架。解决方案是按照适当的步骤在游乐场中使用迦太基框架,即将框架的项目从迦太基/签出添加到我的工作区并进行构建。然后一切都按预期进行,即使是框架项目内的游乐场,在MyApp框架的故事板中充分使用Fancylabel/锡布斯


对于那些在没有迦太基的情况下仍在努力解决这个问题的人,我在这里做了一个快速的工作示例:谢谢你的回答@MathewS。在我的具体案例中,问题是“Fancylabel”框架使用了一个预构建的迦太基框架。我在不使用空白/空工作区的情况下成功地实现了这一点。请看我答案中的github链接。