Implicit conversion of an objective-c pointer to int * is disallowed with ARC
时间: 2024-02-23 22:03:17 浏览: 284
创建peer的错误:Failed to reach implicit threshold of 1 sub-policies, required 1 remaining
这个问题是关于ARC(Automatic Reference Counting)的。ARC是Objective-C和Swift中内存管理的一种方式,它会自动处理对象的内存管理,不需要手动调用retain和release方法。
在ARC环境中,将Objective-C指针自动转换到int指针是不被允许的,因为int是一种基本数据类型,不需要进行内存管理,而Objective-C对象需要进行内存管理。因此,需要使用桥接(bridge)来进行类型转换。
例如,可以使用以下代码将Objective-C指针转换为int指针:
```objective-c
int *myInt = (__bridge int *)myObjcPointer;
```
其中,`myObjcPointer`是一个Objective-C指针变量,`__bridge`关键字表示进行类型转换,将Objective-C指针转换为int指针。
阅读全文