Use performSelectorOnMainThread instead of dispatch_async