Потребительский вопрос производителя с базовыми данными

Если вид имеет ширину 1 дп, то простого поворота горизонтальной линии недостаточно. Длина вертикальной линии будет равна 1 dp, поскольку она сначала рисуется горизонтально, а затем поворачивается. Вот хитрость, чтобы решить эту проблему:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:left="-300dp"
        android:right="-300dp">
        <rotate
            android:drawable="@drawable/dash_line_divider_horizontal"
            android:fromDegrees="90"
            android:toDegrees="90"/>
    </item>
</layer-list>
6
задан Mugunth 23 May 2009 в 19:37
поделиться

2 ответа

Если вы нацелены на Leopard или новее, Apple упростила задачу.

В потоке производителя создайте MOC с тем же PSC, что и MOC в основном потоке. Вы можете извлекать объекты из своего веб-сервиса в этом потоке, создавать новые объекты и сохранять их как обычно.

В потоке потребителя добавьте свой контроллер в качестве наблюдателя для NSManagedObjectContextDidSaveNotification. Ваш обратный вызов должен выглядеть примерно так:

- (void) managedObjectContextDidSave:(NSNotification *)notification
{
  NSManagedObjectContext *managedObjectContext = [notification object];
  if(managedObjectContext != self.managedObjectContext)
    [self.managedObjectContext mergeChangesFromContextDidSaveNotification:notification];
}

Таким образом, объекты, сохраненные в потоке-производителе, будут автоматически извлечены в поток-получатель.

16
ответ дан 8 December 2019 в 14:46
поделиться

Core Data is generally not thread safe. My preference would be to do minimal work on the background thread, and pass the data needed to create Core Data entities to the main thread once you've retrieved it from your web service. However, take a look at this document. There are some strategies for using Core Data across threads if you need to.

0
ответ дан 8 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: