implicit conversion of an Objective-C pointer to 'void *' is disallowed with ARC

后端 未结 2 367
轻奢々
轻奢々 2021-01-30 17:40

What does this mean and what alternative do I have?

implicit conversion of an Objective-C pointer to \'void *\' is disallowed with ARC

I

相关标签:
2条回答
  • 2021-01-30 17:45
    • Automatic Reference Counting - 3.2.4. Bridged casts

    You should use __bridge cast for it.

    AudioSessionInitialize(NULL, NULL, NULL, (__bridge void *)self);
    
    0 讨论(0)
  • 2021-01-30 18:04

    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);

    0 讨论(0)
提交回复
热议问题