Skip to content

Instantly share code, notes, and snippets.

steipete / PSPDFUIKitMainThreadGuard.m
Last active September 20, 2023 10:29
This is a guard that tracks down UIKit access on threads other than main. This snippet is taken from the commercial iOS PDF framework, but relicensed under MIT. Works because a lot of calls internally call setNeedsDisplay or setNeedsLayout. Won't catch everything, but it's very lightweight and usually does the job.You might n…
View PSPDFUIKitMainThreadGuard.m
// Taken from the commercial iOS PDF framework
// Copyright (c) 2014 Peter Steinberger, PSPDFKit GmbH. All rights reserved.
// Licensed under MIT (
// You should only use this in debug builds. It doesn't use private API, but I wouldn't ship it.
// PLEASE DUPE rdar://27192338 ( if you would like to see this in UIKit.
#import <objc/runtime.h>
#import <objc/message.h>
View gist:5339329
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmismatched-method-attributes"
- (IBAction)selectAll:(id)sender
// do stuff
#pragma clang diagnostic pop