SCObject

SCObject

SCObject

Содержание


init Object(collection, id?)

SCObject представляет объект данных приложения и включает методы для работы с этими данными. Конструктор формирует минимальную базовую "обёртку" для пользовательских данных.

Параметр Тип Свойства Описание Пример значения
collection String Обязательное Имя коллекции в которую добавляется объект "testcoll"
id String _id объекта "huNr3L7QDh"

Пример

// Создадим новый экземпляр объекта коллекции items.
let obj1 = SCObject(collection: "items", id: "huNr3L7QDh")
let obj2 = SCObject(collection: "items")

.set(dic)

Метод для передачи данных объекту

Параметр Тип Свойства Описание Пример значения
dic [String: SCValue] Объект с данными для передачи объекту ["fieldString": SCString("NewValue")]

Пример

let newItem = SCObject(collection: "items")
newItem.set([
    "fieldString": SCString("Some test string"),
    "readACL": SCArray([SCString("*"), SCString("0123456789")])
    ])
newItem.save() {
    success, error, result in
    if success {
        // ... 
    } else {
        if let error = error {
            // ...
        }
    }
}

.save(callback)

Метод сохраняет объект в хранилище данных приложения или обновляет уже имеющийся там объект

Параметр Тип Свойства Описание Пример значения
callback (Bool, SCError?, [String: AnyObject]?) Коллбэк для выполняемого запроса.

Пример

let newItem = SCObject(collection: "items")
newItem.set(["fieldName": SCString("Value")])
newItem.save() {
    success, error, result in
    if success {
        // ... 
    } else {
        if let error = error {
            // ...
        }
    }
}

.getById(id, collection, callback)

Метод для для получения объекта коллекции из БД по его _id.

Параметр Тип Свойства Описание Пример значения
id String Обязательный Идентификатор объекта "huNr3L7QDh"
collection String Обязательный Имя коллекции "items"
callback (Bool, SCError?, [String: AnyObject]?) -> Void Коллбэк для выполняемого запроса.

Пример

SCObject.getById("p3OtsLXw8p", collection: "items") {
    success, error, result in
    if success {
        print("Success")
    } else {
        if let error = error {
            print("Error")
        }
    }
}

.get(name)

Метод для получения данных указанного поля объекта.

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля "price"

Пример

let dataItem = SCObject(collection: "items", id: "huNr3L7QDh")
dataItem.get("price")

.upload(field, filename, data, callback)

Метод для загрузки файлов

Параметр Тип Свойства Описание Пример значения
field String Обязательный Имя поля, в которое загружается файл "attachments"
filename String Обязательный Имя файла "docname.pdf"
data NSData Обязательный
callback (Bool, SCError?) Коллбэк для выполняемого запроса.

Пример

let newItem = SCObject(collection: "items")
let image = UIImage(named:"forupload")
newItem.set([
    "description": SCString("Example upload")
    ])
newItem.save() {
    success, error, result in
    if success {
        newItem.upload("attachment", "swiftDocs.pdf", data: image) {
            success, error, result in
            if success {
                print("Success")
            } else {
            if let error = error {
                    print("Error")
                }
            }
        }   
    } else {
        if let error = error {
             print("Error")
        }
    }
}

.getFileLink(fieldName, callback)

Метод для получения ссылки на файл.

Параметр Тип Свойства Описание Пример значения
fieldName String Обязательный Имя файла "attachments"
callback (Bool, SCError?) Коллбэк для выполняемого запроса.

Пример

let item = SCObject(collection: "items", id: "huNr3L7QDh")
item.getFileLink("attachment")
    if success {
        print("Success")
    } else {
    if let error = error {
            print("Error")
        }
    }
}

.deleteFile(field, filename, callback)

Метод для удаления файла

Параметр Тип Свойства Описание Пример значения
field String Обязательный Имя поля "attachments"
filename String Обязательный Имя файла "docname.pdf"
callback (Bool, SCError?) -> Void Коллбэк для выполняемого запроса.

Пример

let item = SCObject(collection: "items", id: "huNr3L7QDh")
item.delete("attachment", "swiftDocs.pdf")
    if success {
        print("Success")
    } else {
    if let error = error {
            print("Error")
        }
    }
}

.remove(callback)

Метод для удаления указанного объекта

Параметр Тип Свойства Описание Пример значения
callback (Bool, SCError?) Коллбэк для выполняемого запроса.

Пример

let item = SCObject(collection: "items", id: "huNr3L7QDh")
obj.remove() {
    success, error, result in
 if success {
        print("Success")
    } else {
        if let error = error {
            print("Error")
        }
    }
}

.push(name, _ value)

Метод для добавления элемента в массив.

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "tags"
_ value SCValue Обязательный Значение нового элемента массива 42

Пример

let editItem = SCObject(collection: "items")
editItem.push("location", SCString("Sierra Army Depot"))

.pushEach(name, _ value)

Метод для добавления нескольких элементов в массив.

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "tags"
_ value SCValue Обязательный Значения новых элементов массива 42, [43,43], 44

Пример

let editItem = SCObject(collection: collection)
editItem.pushEach("location", SCArray([SCString("Sierra Army Depot"), SCString("Navarro")]))

.pull(name, _ value)

Метод для удаления всех элементов массива, значение которых равно указанному.

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "tags"
_ value SCPullable Обязательный Удаляемое значение 42

Пример

let editItem = SCObject(collection: "streets")
editItem.pull("homeNumbers", SCInt(34))

.pullAll(name, _ value)

Метод для удаления всех элементов массива, значения которых равны одному из указанных значений.

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "tags"
_ value SCValue Обязательный Массив удаляемых значений [42, 44]

Пример

let editItem = SCObject(collection: "streets")
editItem.pullAll("homeNumbers", SCArray(integerArray: [34,56]))

.addToSet(name, _ value)

Метод для добавления элемента в массив только в том случае, если в массиве отсутствуют элементы с таким значением.

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "tags"
_ value SCValue Обязательный Значение нового элемента массива 42

Пример

let editItem = SCObject(collection: "items")
editItem.addToSet("location", SCString("A"))

.addToSetEach(name, _ value)

Метод для добавления элементов в массив только в том случае, если в массиве отсутствуют элементы с таким значением.

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "tags"
_ value SCValue Обязательный Массив значений новых элементов массива [42, 43]

Пример

let editItem = SCObject(collection: "items")
editItem.addToSetEach("location", SCArray([SCString("Sierra Army Depot"), SCString("Navarro")]))

.pop(name, _ value)

Метод для удаления первого или последнего элемента массива

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "tags"
_ value Int Обязательный Позиция удаляемого элемента в массиве: -1 для первого элемента и 1 для последнего -1

Пример

let editItem = SCObject(collection: "items")
editItem.pop("location", 1)

.inc(name, _ value)

Метод увеличивает значение числового поля на заданное число

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "price"
_ value SCValue Обязательный Шаг изменения 5

Пример

let editItem = SCObject(collection: "items")
editItem.inc("amount", SCInt(-14))

.currentDate(name, typeSpec)

Устанавливает текущее время в качестве значения поля

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "price"
typeSpec SCValue Обязательный Тип даты. Принимает значения: true, 'date' или 'timestamp' "timestamp"

Пример

let editItem = SCObject(collection: "items")
editItem.currentDate("someDate", typeSpec: "date")

.mul(name, _ value)

Метод умножает значение числового поля на заданное число

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "price"
_ value SCValue Обязательный Мультипликатор 2.5

Пример

let editItem = SCObject(collection: "items")
editItem.min("price", SCDouble(42.42))

.min(name, _ value)

Метод обновляет значение числового поля только в случае, если новое значение меньше текущего значения поля

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "price"
_ value SCValue Обязательный Новое значение 42

Пример

let editItem = SCObject(collection: "items")
editItem.min("price", SCInt(42))

.max(name, _ value)

Метод обновляет значение числового поля только в случае, если новое значение больше текущего значения поля

Параметр Тип Свойства Описание Пример значения
name String Обязательный Имя поля, значение которого нужно изменить "price"
_ value SCValue Обязательный Новое значение 43

Пример

let editItem = SCObject(collection: "items")