gpt4 book ai didi

ios - 有没有办法用脚本创建一个 swift 类并在预构建中添加属性?

转载 作者:行者123 更新时间:2023-11-28 11:27:44 25 4
gpt4 key购买 nike

也许这很愚蠢,但这里什么也没有:我很好奇是否有一种方法可以根据属性列表创建一个 swift 类或结构。也许在构建阶段的某个地方插入了他的脚本。例如,有一个本地 JSON 文件或类似的东西,可以从中读取:

 {"className":"Person", "name":"string", "age":"int" }

将创建结构:

struct Person {
let name: String
let age: Int
}

最佳答案

#! /bin/bash

gawk -F, '{

for (i = 1 ; i <= NF ; ++i)
{
split($i, arr, ":")

match(arr[1], /"(.*)"/, mat)
key=mat[1]

match(arr[2], /"(.*)"/, mat)
value=mat[1]

if (key ~ /className/)
{
struct_name=value
}
else
if (value != "")
{
contents[key]=value
}
}
}
END {
print "struct "struct_name" {"
for (key in contents)
{
print "\tlet "key": "contents[key]
}
print "}"
}' file

我经常听到人们说 jq 在处理 json 时更好,但我从未尝试过。因此,如果有帮助,您应该考虑搜索有关 jq 的内容。

上面的 gawk 脚本应该产生所需的输出。

同样的事情可以用一般的 awk 甚至普通的 bash 脚本来完成,但是用 gawk 做起来要容易一些。

您需要做的就是将上述 scipt 的输出重定向到所需的文件。假设您使用名称 parser 保存了脚本。

bash parser > pathtoyourapp/filename.swift

你可以在上面的脚本中做同样的事情,就像在脚本的最后一行一样:

}' file > pathtoyourxcodeproject/controller/filename.swift

当您编写 swift 代码时,我假设您有一台 mac。您可以通过适用于 mac 的任何包管理器安装 gawk。我用的是macports .安装macports后,可以通过sudo port install gawk安装gawk

更新:

正如 trojanfoe 在评论中提到的,项目导航器不会仅通过将文件添加到项目目录来更新。我不确定该怎么做。

我在网上搜索后发现的,this似乎可以完成这项工作。

关于ios - 有没有办法用脚本创建一个 swift 类并在预构建中添加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57693104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com