当前位置: 首页 > 知识库问答 >
问题:

将记录列表应用于Swift数组(或更好)

司徒俊雄
2023-03-14

我基于这个例子测试了一个小的OSX应用程序,它使用到AppleScript的桥梁从iTunes获取简单的信息。

就像我在ComboDrums的评论中说的(是我),我有一个脚本可以将我所有的iTunes播放列表放在树上,但是一旦返回比简单的字符串更复杂,它就会失败。

因此,我正在寻找一种方法,将AppleScript的列表返回到一个Swift友好对象。

有什么想法吗?

谢谢。

脚本:

to getStaticPlaylistsTree()
    tell application "iTunes"
        set theList to {{theName:"Bibliothèque", theID:"66270731FDBE2C50", isFolder:false, theClass:library playlist, isSmart:false, theCount:37581}, {theName:"Clips vidéo", theID:"07D5032B96891D67", isFolder:false, theClass:user playlist, isSmart:true, theCount:283}}
    end tell
    return theList
end getStaticPlaylistsTree

共有1个答案

壤驷向明
2023-03-14

首先,使用NSDicpedia作为参数的构造函数创建swift类或结构

struct SwiftModel {

    // Declare attributes

    init(dictionary: NSDictionary) {
        self.isFolder = dictionary.value(forKey: "isFolder") as! Bool
        self.isSmart = dictionary.value(forKey: "isSmart") as! Bool
        self.theCount = dictionary.value(forKey: "theCount") as? Int
        self.theID = dictionary.value(forKey: "theID") as? String
        self.theName = dictionary.value(forKey: "theName") as? String
        self.theClass = (dictionary.value(forKey: "theClass") as? NSAppleEventDescriptor)
    }
}

然后,使用flatMap或compactMap将apple脚本列表转换为Swift数组。

let listFromAppleScript = // List returned from apple script i.e self.iTunesBridge.getStaticPlaylistsTree
let staticPlayListTree = listFromAppleScript?.compactMap({SwiftModel(dictionary: $0 as! NSDictionary)})
print(staticPlayListTree![0].theName)

输出:可选(“文献”)

 类似资料:
  • 问题内容: 我正在使用Spring Boot 1.4.3 ,根据用户指定的属性自动创建bean。用户可以指定一系列服务,其中 名称 和 版本 为必填字段: 如果用户忘记了甚至只在一项服务上都指定了必填字段,那么我想回退而不创建任何bean。我可以用吗?我想要类似的东西: 问题答案: 这是我创建的风俗。它需要一些修饰才能更通用(即,不对字符串进行硬编码),但对我来说效果很好。 要使用,我用以下注释了

  • 我从这个URL刮取了这个表: "https://www.patriotsoftware.com/blog/accounting/average-cost-living-by-state/" 看起来像这样: 然后我编写了这个函数来帮助我将字符串转换成整数: 当我只将函数应用于一列时,它就会工作。我在这里找到了关于在多个列上使用的答案:如何将函数应用于多个列 但我下面的代码不起作用,也不会产生错误:

  • 问题内容: NumPy“结构化数组”,“记录数组”和“ recarray”之间的区别是什么? 该NumPy的文档 暗示,前两个是相同的:如果是这样,这是该对象的首选术语? 同样的文件说,(在页面的底部):你可以找到关于recarrays和结构化阵列(包括两者之间的区别)一些更多的信息在这里。是否有对此差异的简单解释? 问题答案: 记录/记录数组在 https://github.com/numpy/

  • 我想把这个应用到我的列表中。当我打印出列表时,它直接从文本文件中出来,这很好。但现在我的目标是确保它说“ID:0”“Title:10 Segundos..”等等。这个列表中有大约100部来自文本文件的电影,所以我只需要使用stringify方法,它在另一个类上。即使当我调用类时,它也不适用于所有列表。 **我不允许编辑电影类**

  • 在执行时,是否有一种方法可以将聚合函数应用于dataframe的所有列(或列表)?换句话说,是否有一种方法可以避免对每个列都这样做:

  • 我正在做一个项目,将读取Excel电子表格行的每个单元格的内容,并将所有这些信息存储在字符串ArrayList中,然后将所有这些行作为记录插入MySQL数据库。 我有一个方法可以很好地提取这些数据,并返回字符串ArrayList的完整ArrayList。我遇到的问题是试图将这些字符串数组列表作为记录插入SQL数据库。我在运行时得到一个索引越界异常。 谁能解释一下我哪里出了问题吗?我认为在我对Arr