Arrays 如何在Swift中将.txt文件拆分为多维数组或字典?
我需要以以下格式解析的txt文件体:Arrays 如何在Swift中将.txt文件拆分为多维数组或字典?,arrays,swift,sorting,dictionary,parsing,Arrays,Swift,Sorting,Dictionary,Parsing,我需要以以下格式解析的txt文件体: Name: LittleX Package: com.ioscreatix.littlex Description: iPhone X features for Non-X devices on iOS 11, and iPad Dock and PiP for All iOS 11 Devices on iOS 11 Name: InteliX Package: com.ioscreatix.intelix Description: Grouped No
Name: LittleX
Package: com.ioscreatix.littlex
Description: iPhone X features for Non-X devices on iOS 11, and iPad Dock and PiP for All iOS 11 Devices on iOS 11
Name: InteliX
Package: com.ioscreatix.intelix
Description: Grouped Notifications for iOS 11
我希望我的数组中的每个包在一个数组中分别按其名称值列出,并使用字典进行描述和包。我将如何做到这一点
这是我目前掌握的代码:
var unfilteredPackagesArray = [String]()
var secondFilteredPackagesArray = [String]()
var finalFilteredPackagesArray = [String]()
if let startWordsURL = Bundle.main.url(forResource: "Packages", withExtension: "") {
if let startWords = try? String(contentsOf: startWordsURL) {
unfilteredPackagesArray = startWords.components(separatedBy: "\n\n")
print(unfilteredPackagesArray)
secondFilteredPackagesArray = startWords.components(separatedBy: "\n")
finalFilteredPackagesArray = startWords.components(separatedBy: ":")
print(secondFilteredPackagesArray)
最好的方法是什么?创建软件包对象并将其组成一个数组?是的,请继续!
是的,我认为您应该创建一个包
结构,然后生成一个包数组
这是密码
1.定义包struct@JoakimDanielson问题是我从输入中得到这个txt文件。这给了我一个bzip2包,我仍然不知道如何用swift打开,其中有一个txt文件。遗憾的是,我无法从中获得json。以后使用stride而不是3个数组压缩(两次)怎么样?这将避免3个过滤器。附加问题:删除的最后一个
compactMap()
:“第一部分,在这里更好,还是在包的自定义init()
方法中删除更好?@Larme stride是这个函数式编程方法的一个很好的替代方法。@Larme关于第二个问题,您可以通过执行.compactMap>进一步阐述吗{$0.components(分隔符:“:”).last}
再次迭代整个数组,而这可以在包中完成。init()
@Larme现在我明白了你的意思。你的解决方案确实比我的快。但我不确定是否有一个放弃部分传递参数的初始值设定项。