0

I am new to programming & trying to apply filters using UISwitches

Currently I have:

  1. A realm database returning all the objects
  2. A UI that uses Switches to send filters

Things Attempted:

  1. Subqueries, however I don't know the proper format to write it for realm

Goal: Apply multiple filters to realm database results

User Interface:

enter image description here

Realm Database:

class Question: Object {

@objc dynamic var neverAttempted: Bool = true
@objc dynamic var correct: Int = 0
@objc dynamic var flagged: Bool = false
@objc dynamic var subject: String = ""

}

correct = 1;
neverAttempted = true;
flagged = false;
subject = Law;

View Controller:

import UIKit
import RealmSwift

class OptionsViewController: UIViewController {

@IBOutlet weak var totalQuestionsLabel: UILabel!

@IBOutlet weak var totalQuestionSlider: UISlider!

var neverAttempted = ""
var correct = ""
var flagged = false
var subject = ""

let realmOne = try! Realm()
var questionBank: Results<Question>! {
    get {
        return realmOne.objects(Question.self)
    }
}

override func viewDidLoad() {
    super.viewDidLoad()

}

func updateQuestionBank() {

    let updatedQuestionBank = realmOne.objects(Question.self)
        .filter(//Apply filter//)

    totalQuestionsLabel.text = String(updatedQuestionBank.count)
    print (updatedQuestionBank)

}

@IBAction func subjectSwitch(_ sender: UISwitch) {

    if sender.isOn == true {
        subject = 
        updateQuestionBank()
    }

}

@IBAction func flaggedSwitch(_ sender: UISwitch) {

    if sender.isOn == true {
        flagged =
        updateQuestionBank()
    }

}

@IBAction func neverAttemptedSwitch(_ sender: UISwitch) {

    if sender.isOn == true {
        neverAttempted = 

    }

}


@IBAction func correctOnlyOnceSwitch(_ sender: UISwitch) {

    if sender.isOn == true {
        correct = 
        updateQuestionBank()
    }

}
Captain725
  • 73
  • 1
  • 7
  • 1
    This looks like you want an AND filter so .filter("correct == 1 AND neverAttempted == 1 AND flagged == 0 AND subject == 'Law'". Is that enough info for you? – Jay Jun 08 '20 at 16:58
  • Hey Jay, I will try that out. Also, do you know how I can return a specific number of realm objects. For example, I have 1000 objects, but using a slider I select only the first 100? – Captain725 Jun 09 '20 at 08:31

0 Answers0