Swift从自定义对象数组的属性中获取第一个字母

沙耶尔

我有一个自定义对象

class Keyword
{
    var keyword : String
    var description : String

    init(keywordID : Int, keyword : String, description : String)
    {
        self.keyword = keyword;
        self.description = description;
    }
}

它的数据就像

var keywords = [Keyword]()
keywords.append(Keyword(keyword: "abc", description: "dsd dfgdf dghj"))
keywords.append(Keyword(keyword: "adet", description: "dsd dfgdf dghj"))
keywords.append(Keyword(keyword: "niuk", description: "dsd dfgdf dghj"))
keywords.append(Keyword(keyword: "sdg", description: "dsd dfgdf dghj"))
keywords.append(Keyword(keyword: "sax", description: "dsd dfgdf dghj"))
keywords.append(Keyword(keyword: "trygh", description: "dsd dfgdf dghj"))

为了在UITableView中创建节,我需要将第一个字母作为节标题。对于上面的示例,我需要以下数据

  1. a-> abc,adet
  2. n->牛
  3. s-> sdg,sax
  4. t-> trygh

我创建了另一个对象来存储上述数据

class KeywordSection
{
    var section : Character
    var keywords : [Keyword]

    init(section : Character, keywords : [Keyword])
    {
        self.section = section;
        self.keywords = keywords;
    }
}

我在Android中通过遍历数组并提取第一个字母并检查各个部分来完成此操作。另外,我需要检查第一个字母是否为字母,如果需要,则必须添加该部分,否则该部分将为“#”(与iphone通讯录应用相同)

阿德斯泰特

将此方法添加到您的关键字类中:

var sectionName : String {
    return keyword.substringToIndex(1) ?? "?"
}

然后使用此代码创建节标题到关键字的字典:

var sections = [String:[Keyword]]()

for k in keywords {
    let s = k.sectionName
    if let oldKeywords = sections[s] {
        var mutableOldKeywords = oldKeywords
        mutableOldKeywords.append(k)
        sections[s] = mutableOldKeywords
    } else {
        sections[s] = [k]
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有自定义IFormatProvider的DateTime.ToString()中的月份的第一个字母

按属性第一个字母对对象数组进行分组

Swift - 修剪并映射数组中的第一个字母

如何创建自定义词典输出。目前拿起第一个字母并给出输出

从Swift中的数组值获取第一个字符

获取索引的第一个字母?

如何根据对象数组中属性的第一个字符过滤对象数组?

使用charAt遍历数组以获取javascript中每个值的第一个字母

在充满自定义对象的模型中获取第一个不为零的值

PHP在下拉列表中显示数组的第一个字母?

MATLAB:大写字符串数组中的第一个字母

将数组中的第一个字母定位为大写

如何将数组中每个名称的第一个字母大写?

从列中获取字符串的第一个字母

仅从 Postgresql 的列中获取第一个字母词

在声明中获取单词的第一个字母

获取python中每个2个字母的单词的第一个字母

获取数组对象中的所有第一个字符串

按属性对列表进行排序,并在JavaScript中的每个第一个字母更改之前添加一个对象

如何替换字符串数组中的第一个字母和最后一个字母

在字符串中的第一个字母后添加一个空格 - Swift 5

在javascript中查看数组中每个字符串的第一个字母

在对象数组MONGO的第一个字段中查找

如何从PHP数组中获取第一个字符

dataweave 从数组元素中获取第一个字符

从numpy数组中的每个字符串中提取第一个字母

JavaScript:提取数组中每个字符串的第一个字母?

获取具有“ name”属性(以所选字母开头)的数组中第一个对象的索引

使用自定义排序对JavaScript字符串数组进行排序,以在第一个字符中使用标点符号