«lock» устарел: сначала устарел в iOS 8.0 – Use -performBlockAndWait: вместо этого – iOS coredata warning

Я использую Xcode 7.1, и я получаю это предупреждение при открытии моего существующего приложения. Было бы полезно, если кто-то покажет способ использования -performBlockAndWait:

введите описание изображения здесь

благодаря

    Как сказал Мунди, вам не нужен замок для того, что вы делаете. Однако, чтобы решить ваш общий вопрос о lock и unlock , устаревшей …

    performBlockAndWait этого вы должны использовать performBlock или performBlockAndWait . Эти методы аналогичны тем, что описаны в NSManagedObjectContext .

    Таким образом, вместо ручного блокирования критической области вы помещаете этот код в блок, который «выполняется».

    Например, если у вас есть этот код …

     [persistentStoreCoordinator lock]; [persistentStoreCoordinator doSomeStuff]; [persistentStoreCoordinator unlock]; 

    вы замените его на …

     [persistentStoreCoordinator performBlock:^{ [persistentStoreCoordinator doSomeStuff]; }]; 

    Обратите внимание, что performBlock – это асинхронная операция, и она немедленно вернется, планируя блок кода для выполнения в каком-то другом потоке в какой-то момент в будущем.

    Это должно быть хорошо, поскольку в любом случае мы должны делать большую часть нашего программирования с асинхронной моделью.

    Если вы должны выполнить синхронное выполнение, вы можете использовать альтернативу, которая завершит выполнение блока перед возвратом в вызывающий поток.

     [persistentStoreCoordinator performBlockAndWait:^{ [persistentStoreCoordinator doSomeStuff]; }]; 

    Опять же, они ведут себя точно так же, как их аналоги NSManagedObjectContext .

    Просто удалите оскорбительные строки. Нет необходимости блокировать при добавлении постоянного хранилища координатору.

    Кроме того, вы должны использовать последний Xcode, в настоящее время 7.2.

    Давайте будем гением компьютера.