CoreStore transaction.edit, предлагающий комментарии, использующие одно и то же имя переменной, защищает нас от неправильного использования экземпляра без транзакции - PullRequest
0 голосов
/ 30 апреля 2019

Из документа я нашел этот код:

let jane: MyPersonEntity = // ...

CoreStore.perform(
    asynchronous: { (transaction) -> Void in
        // WRONG: jane.age = jane.age + 1
        // RIGHT:
        let jane = transaction.edit(jane)! // using the same variable name protects us from misusing the non-transaction instance
        jane.age = jane.age + 1
    },
    completion: { _ in }
)

Не знаю, зачем нам это нужно // using the same variable name protects us from misusing the non-transaction instance

Как быстро, я предлагаю использовать два из них:

enter image description here

1 Ответ

0 голосов
/ 30 апреля 2019

В этом предложении используется функция затенения имен переменных, которая есть у swift.

При автозаполнении XCode все равно будет отображаться "jane", поскольку другой с именем name также находится в той же области видимости, хотяникогда не может быть использован - как это затенено.Неважно, что вы там выбираете.По этой причине это самый безопасный способ обработки объектов транзакций, поскольку он не позволяет случайно использовать неправильный объект.

...