Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift领域-如何计算单个列中的所有数据?_Ios_Swift_Database_Count_Realm - Fatal编程技术网

Ios Swift领域-如何计算单个列中的所有数据?

Ios Swift领域-如何计算单个列中的所有数据?,ios,swift,database,count,realm,Ios,Swift,Database,Count,Realm,下面是我的班级的样子: class Card : Object { @objc dynamic var tags: String = "" @objc dynamic var set_id: String = "" } 我想返回所有具有转发的设置id的卡的标签数 方法如下: func totalTags() -> String { var tagCounter: Int = 0 let realm = try? Realm()

下面是我的班级的样子:

class Card : Object {
    @objc dynamic var tags: String = ""
    @objc dynamic var set_id: String = ""
}
我想返回所有具有转发的设置id的卡的标签数
方法如下:

func totalTags() -> String {
        var tagCounter: Int = 0
        let realm = try? Realm()
        let totalCards = realm!.objects(Card.self).filter("set_id = '\(setId)'") //all Cards with selected set_id, set_id is global var.
        for card in 0...totalCards.count {
            //every 'card' has tags, but there there can me more tags,
            //like : tags="one,twitter,world,Europe"...
            //And I want to count all of them for every 'card'
            let result = realm.objects(Card.self).filter() //How to filter?
            tagCounter += //what? result.count or something?
        }
        return String(tagCounter)
    }

我知道
tags:String
包含逗号分隔的元素,您需要查找元素的数量

您可以通过迭代
totalCards
来实现这一点。对于每个
,将
标记
拆分为一个数组,并计算元素数

totalCards中的卡的
{
tagCounter+=card.tags.components(以“,”分隔)。计数
}

组件(分隔符:)

我知道这已经得到了回答,但我只想分享一下如何以我自己的方式完成

let tagsCount = totalCards.map { $0.tags.components(separatedBy: ",") }.flatMap { $0 }.filter { !$0.isEmpty }.reduce(into: 0, { result, _  in
        result += 1
 })

谢谢。快乐编码:)

您的for循环没有任何作用,因为您没有使用“card”实例。显示了您正在实现的实际代码。这是我的实际代码。我知道有些东西不起任何作用,所以我在这里发布了一个问题:),你能帮忙吗?我要跳出这里的框,但为什么要在标记中存储逗号分隔的字符串?在名为
let tagList=List
的卡片中创建一个TagClass领域对象和一个属性如何。然后你可以a)重用标签b)创建从标签到卡片的链接c)答案变得简单;要获取每张卡的标记计数,只需执行以下操作:
让TotalTagsForDiscard=someCard.tagList.count
谢谢,伙计:)我只需要将您的代码添加到if card.tags!=“”因为默认情况下标记为“”,所以它计数为+1