问题
While converting an app to use Automatic Reference Counting I came across this error:
SCNetworkReachabilityContext context = {0, self, NULL, NULL, NULL};
Implicit conversion of an Objective-C pointer to 'void *' is disallowed with ARC
This fixes the compiler error, but gives a warning:
SCNetworkReachabilityContext context = {0, objc_unretainedPointer(self), NULL, NULL, NULL};
How to get rid of this warning?
Initializing 'void *' with an expression of type 'objc_objectptr_t' (aka 'const void *') discards qualifiers
回答1:
You should be able to cast self (id) to a void * without problem.
SCNetworkReachabilityContext context = {0, ( void * )self, NULL, NULL, NULL};
来源:https://stackoverflow.com/questions/7151362/objective-c-scnetworkreachabilitycontext-arc-conversion