Я нахожу это забавным больше всего. Я исправил это, но мне интересно о причине. Вот ошибка: 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);
}
Исправление:
var statement = "create table if not exists " + self.tableName();
statement += "(" + columns + ");";
это также работает (через @efischency), но мне это не нравится, потому что я думаю, что ( теряется:
 var statement = "create table if not exists \(self.tableName()) (\(columns))"

