相关疑难解决方法(0)

领域从错误的线程访问

我正在使用串行GCD队列来处理领域.Realm accessed from incorrect thread当GCD开始为队列切换线程时,应用程序崩溃,异常.有没有办法使用GCD API绑定给定领域的线程?

这是一个简单的例子

self.realmQueue = dispatch_queue_create("db", DISPATCH_QUEUE_SERIAL);

__block RLMRealm *realm = nil;
dispatch_async(self.realmQueue, ^{
    realm = [RLMRealm realmWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"temp"]];
});

self.motionManager = [[CMMotionManager alloc] init];
self.motionManager.accelerometerUpdateInterval = 0.001;
__block int i = 0;
__block BOOL shouldBeginWriteTransaction = YES;

[self.motionManager startAccelerometerUpdatesToQueue:[[NSOperationQueue alloc] init] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {

    dispatch_async(self.realmQueue, ^{
        if (shouldBeginWriteTransaction) {
            [realm beginWriteTransaction];
            shouldBeginWriteTransaction = NO;
        }

        AccelerationEvent *event = [[AccelerationEvent alloc] init];
        event.x = accelerometerData.acceleration.x;
        event.y = accelerometerData.acceleration.x;
        event.z = accelerometerData.acceleration.y;
        event.time …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c realm ios

18
推荐指数
1
解决办法
2万
查看次数

标签 统计

cocoa ×1

ios ×1

objective-c ×1

realm ×1