在Cocoa Touch静态库中访问主队列

时间:2014-04-11 13:00:11

标签: ios objective-c cocoa-touch static-libraries grand-central-dispatch

我制作了简单的可可触摸静态库(通过遵循http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial中的简单教程)

该库中的一切正常。现在我需要访问使用此库的应用程序的mainQueue。我正在使用以下命令来访问它

dispatch_queue_t mainQueue = dispatch_get_main_queue();

但它给我BAD_ACCESS错误。现在我尝试创建自己的队列并将其作为参数传递给我的库中的其他方法,它创建了队列但是当我将其作为参数传递给我的方法时,它再次给我BAD_ACCESS。当我将它分配给其他变量时,即使它给我同样的错误。

将队列创建为:

dispatch_queue_t abcQueue = dispatch_queue_create("abcQueue", NULL);

现在将其分配给其他变量或将其传递给我的方法会给我BAD_ACCESS错误。 如果有人遇到同样的错误并解决了这个问题,请帮助我。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情,我不确定它有多么不同,但试一试并告诉我们。

dispatch_async(dispatch_get_main_queue(), ^{
    //do stuff
    });

答案 1 :(得分:0)

您可以在主线程

中运行代码

1)您也可以尝试使用NSOperationQueue: -

// Get hold of main queue (main thread)
    [[NSOperationQueue mainQueue] addOperationWithBlock: ^ {
        //Do something
    }];

2)您也可以使用performSelector进行试用

[self performSelectorOnMainThread:@selector(doSomething) withObject:nil waitUntilDone:NO];