我觉得这比任何事都更有趣.我修好了,但我想知道原因.这是错误:DataManager.swift:51:90: Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions.为什么抱怨?这似乎是最简单的表达方式之一.
编译器指向该columns + ");";部分
func tableName() -> String { return("users"); }
func createTableStatement(schema: [String]) -> String {
var schema = schema;
schema.append("id string");
schema.append("created integer");
schema.append("updated integer");
schema.append("model blob");
var columns: String = ",".join(schema);
var statement = "create table if not exists " + self.tableName() + "(" + columns + ");";
return(statement);
}
Run Code Online (Sandbox Code Playgroud)
修复是:
var statement = "create …Run Code Online (Sandbox Code Playgroud) 将Swift + ObjC项目更新到Xcode 8(Swift 2.3)后,我发现50%或更多的时间Xcode完全重建项目而不是增量构建.
所做的更改是添加简单的打印语句.似乎没有关于何时执行完全重建的逻辑.
它出现在"检查依赖关系"阶段,它决定了这一点.在Xcode 7上,这似乎不是问题.
有人遇到过这种情况么?
自从Swift 3和XCode8以来,我的项目编译速度非常慢.每次我添加一个空行到文件,重新编译需要一整分钟.当我检查输出时,没有特定的文件需要很长时间.(我也用这个工具测量它:https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode)
它似乎总是一次编译4个文件."节奏"非常稳定.只是很慢......
另外:每当我打开或切换文件时,可能需要很长时间才能获得自动完成或错误/警告.
我可以检查什么?我几乎觉得我设置了一些标志,只是像疯了一样拖慢构建速度.
编辑: 这不是解决潜在问题的方法,但我花了一些时间将更多代码转移到框架上.这产生了不同(仅仅因为它每次都必须重新编译更少的文件).这不应该是必要的,但它无法忍受......我当然仍然非常期待一个正确的解决方案.
使用像这样的Dockerfile时:
FROM swift:latest
RUN mkdir foo && cd foo && swift package init
RUN cd foo && swift build && swift build
RUN cd foo && swift build
Run Code Online (Sandbox Code Playgroud)
当第3步运行时,swift build将仅编译应用程序一次,因为第二次执行将只使用已构建的对象,并且输出将是单个Compile Swift Module 'foo' (1 sources)
然而,在运行第4步时,它似乎忽略了已经构建的任何内容,并重新重建整个事物,尽管没有任何改变且没有干净.我已经尝试过运行a RUN ls /foo/.build && ls /tmp,一切似乎都已到位.
我想要实现的是设置我的图像,所以我首先从git克隆项目,构建它(所以这个"基础"层由docker缓存),然后COPY在本地机器的任何更改中构建只是新的更新,但最终建立整个项目2次.
任何的想法?
编辑:这是我的实际Dockerfile的样子:
FROM swift:latest
RUN git clone git@foo.com/foo.git
RUN cd /foo && swift build
COPY . /foo
RUN cd /foo && swift build
Run Code Online (Sandbox Code Playgroud)
理想情况下,前三层将保持缓存,最后两层只会构建新的更改,而不是最终重建整个项目
由于我已经更新到XCode 7.3.1,我无法运行我的项目,因为它挂起了"复制Swift标准库"步骤(来自IDE和命令行).如果我尝试打开项目配置文件或者创建一个新的Swift项目,它也会崩溃.
有谁知道为什么会这样?
我正在使用OSX 10.11.6在Mac mini(2012年末)上运行XCode
解决了
最后解决了重新安装XCode和SDK.
谢谢大家的答案.