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

标签 ios swift uitableview

我有一个自定义对象

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 -> niuk
  3. s -> sdg, sax
  4. t -> 尝试

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

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]
    }
}

关于ios - Swift 从自定义对象数组中的属性获取第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31238570/

相关文章:

android - PhoneGap 3.3.0 又名 Cordova 与 PhoneGap 3.2.0

objective-c - Interface Builder 中的每个连接都会导致 SIGABRT!

ios - 如何修改包含 '-'作为单词字符的单词边界

ios - 当我在 tableView 中选择一个单元格时,如何阻止 UIView 背景颜色消失

swift - 有什么方法可以在为 AppStore 存档时检查设置

ios - 为什么我不能将我的 NSDictionary 数据放入 UITableView

ios - 向 UITableView 单元格添加左缩进

ios - 是否可以从 NSIndexPath 获取 "global"索引?

javascript - MobileSafari 因内存消耗过多而崩溃

ios - 有时尝试从 UITableView 中删除行时会崩溃