performSelector may cause a leak because its selector is unknown
解决办法:
1.
SEL selector = NSSelectorFromString (@ "someMethod" );
(( void (*)( id , SEL ))[ _controller methodForSelector : selector ])( _controller , selector );
2.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[ self . ticketTarget performSelector : self . ticketAction withObject : self ];
#pragma clang diagnostic pop
#define SuppressPerformSelectorLeakWarning ( Stuff ) \
do { \
_Pragma ( "clang diagnostic push" ) \
_Pragma ( "clang diagnostic ignored \"-Warc-performSelector-leaks\"" ) \
Stuff ; \
_Pragma ( "clang diagnostic pop" ) \
} while ( 0 )
3.In your project Build Settings , under Other Warning Flags ( WARNING_CFLAGS
), add -Wno-arc-performSelector-leaks
4.
SEL selector = @selector ( zeroArgumentMethod );
NSMethodSignature * methodSig = [[ self class ] instanceMethodSignatureForSelector : selector ];
NSInvocation * invocation = [ NSInvocation invocationWithMethodSignature : methodSig ];
[ invocation setSelector : selector ];
[ invocation setTarget : self ];
[ invocation invoke ];
http://stackoverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selector-is-unknown