Если вид имеет ширину 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>
Если вы нацелены на Leopard или новее, Apple упростила задачу.
В потоке производителя создайте MOC с тем же PSC, что и MOC в основном потоке. Вы можете извлекать объекты из своего веб-сервиса в этом потоке, создавать новые объекты и сохранять их как обычно.
В потоке потребителя добавьте свой контроллер в качестве наблюдателя для NSManagedObjectContextDidSaveNotification. Ваш обратный вызов должен выглядеть примерно так:
- (void) managedObjectContextDidSave:(NSNotification *)notification
{
NSManagedObjectContext *managedObjectContext = [notification object];
if(managedObjectContext != self.managedObjectContext)
[self.managedObjectContext mergeChangesFromContextDidSaveNotification:notification];
}
Таким образом, объекты, сохраненные в потоке-производителе, будут автоматически извлечены в поток-получатель.
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.