-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Description
How to get rid of "-Warc-performSelector-leaks" warning with a argument based selector
Old code resulting in deprecation error with Xcode12.5
From the Magical Record repo.
#pragma clang diagnostic push
#pragma clang diagnostic ignored \
"-Warc-performSelector-leaks"
if (implementsShouldImport && !(BOOL)[self performSelector:shouldImportSelector withObject:relatedObjectData])
{
continue;
}
#pragma clang diagnostic pop
Note: Ignoring the warning with #pragma clang diagnostic push
isn't working.
Updated Logic
if (implementsShouldImport) {
IMP shouldImportImplementation = [self methodForSelector:shouldImportSelector];
BOOL (*func)(id, shouldImportSelector, id) = (void *)shouldImportImplementation;
if (!func(id, shouldImportSelector, relatedObjectData)) {
continue;
}
}
Resulting in two errors:
Type specifier missing, defaults to 'int'
forBOOL (*func)(id, shouldImportSelector, id) = (void *)shouldImportImplementation;
Unexpected type name 'id': expected expression
for lineif (!func(id, shouldImportSelector, relatedObjectData)) {
Adopting the answer here
How to get rid of "Warc-performSelector-leaks" warning.
Magical Record is unmaintained open source library that is resulting in error with Xcode12.5 compilation.
Metadata
Metadata
Assignees
Labels
No labels