implicit conversion of an Objective-C pointer to 'void *' is disallowed with ARC
- Automatic Reference Counting - 3.2.4. Bridged casts
You should use __bridge cast for it.
AudioSessionInitialize(NULL, NULL, NULL, (__bridge void *)self);
You can't do implicit casts to void*
anymore, AudioSessionInitialize(NULL, NULL, NULL, objc_unretainedPointer(self));
should do the trick.
EDIT:
Historical point, the answer above was from before the __bridge
casts were finalized. In modern code the correct answer is that provided by @KazukiSakamoto, AudioSessionInitialize(NULL, NULL, NULL, (__bridge void*)self);