How do you make a query that adds everything in Realm.io in Swift?

0

I am trying to make a query that gives me the total sum of percent associated with a id_character , here are my classes

I have a class like this:

class DBCharacter: Object
{
    dynamic var id_character:String = ""
    override class func primaryKey() -> String? { return "id_character" }
}

I have another class:

class DBItem: Object
{
    dynamic var id_item:String = ""
    dynamic var id_character:String = ""
    dynamic var percent:Float = 0
}

I do it this way, but it throws me wrong:

let filterItems  = NSPredicate(format: "id_character = %@",  self.id_character)
let totalPercent = realm.objects(DBItem.self)
                                .filter(filterItems)
                                .sum(ofProperty: "percent")

The error it throws is:

  

Type of expression is ambiguous without more context

    
asked by albertcito 21.02.2017 в 20:25
source

1 answer

0

It can be done with a FOR but the idea is to do it only with SQL

let filterItems  = NSPredicate(format: "id_character = %@",  self.id_character)
let items = realm.objects(DBItem.self).filter(filterItems)

var totalPercent:Float = 0
var nItems = 0
for item in items
{
    totalPercent = totalPercent + item.percent
    nItems = nItems + 1
}

let dbCharacter = realm.object(ofType: DBCharacter.self, forPrimaryKey: self.id_character)
try! realm.write
{
    dbCharacter?.knowledge = totalPercent/Float(nItems)
}
    
answered by 21.02.2017 в 21:21