Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

Filter structure- iOS

The Filter structure provides the ability to configure filters that define the data to return in the return results of a REST endpoint query.

Parent Topic:Mobile SDK - iOS

Filter - init(criteria criteriaList: [Criteria], sortBy: [Sort]? = nil, queryCategory: String? = nil)

Creates a filter based on one or more filter criteria that are OR'd together.

NameTypeDescription
criteriaArrayTop level criteria conditions to group with `OR` connectors.
sortByStringOptional. Sort order of the return results.Possible values: - asc: Ascending - desc: Desending Default: asc
queryCategoryStringOptional. Name of the query category.Default: None
TypeDescription
None 

The following example shows creating three separate criteria and when passed in, if any of those criteria are met, the record is passed back in the return results.

// All of criteria1 conditions must be met
let criteria1 = Criteria(conditions: …)

// OR all of criteria2 conditions must be met
let criteria2 = Criteria(conditions: …)

// OR all of criteria3 conditions must be met
let criteria3 = Criteria(conditions: …)

let filter = Filter(criterias: [criteria1, criteria2, criteria3])

Filter - init(conditions: [QueryProviding], sorts: [Sort]? = nil)

Creates a filter based on all specified conditions (AND'd together)

NameTypeDescription
conditionsQueryProvidingConditions to group with an `AND` connector.Possible values: - boolean - dateTime - email - integerChoice - numeric - reference - string - stringChoice
sortsStringOptional. Sort order of the return results.Possible values: - asc: Ascending - desc: Desending Default: asc
TypeDescription
None 

The following code example shows how to call this function.

// Where the record is active
let condition1 = Condition.boolean(field: "active", .is(true))

// AND the date value of the SLA due field is on "today" or any date after today.
let condition2 = Condition.dateTime(field: "sla_due", .atOrAfter(0, .daysAgoStart))

let filter = Filter(conditions: [condition1, condition2])

Filter - init(query: String, queryCategory: String? = nil)

Creates a filter using a specified encoded query.

NameTypeDescription
queryStringEncoded queryEncoded query to use to filter the records to return from the table.
queryCategoryStringOptional. Name of the query category to use for the query.
TypeDescription
None 

The following code example shows how to call this function.

let query = "active=true^short_descriptionLIKEbroken"
let filter = Filter(query: query)

Filter - init(keywords: String? = nil, conditions: [Condition], sortBy: [Sort]? = nil)

Creates a filter based on specific keywords and conditions that are AND'd together.

NameTypeDescription
keywordsStringOptional. Any specific word or phrase to search for.Default: nil - No specific word search.
conditionsStringConditions to group with an `AND` connector.Possible values: - boolean - dateTime - email - integerChoice - numeric - reference - string - stringChoice
sortByStringOptional. Sort order of the return results.Possible values: - asc: Ascending - desc: Desending Default: asc
TypeDescription
None 
// Keyword that must be found in the record
let searchTerm = "…"

// AND the specified condition must be met
let condition1 = Condition.email(field: "state", .changesFrom("4"))

let filter = Filter(keywords: searchTerm, condition: condition1)