Flo*_*ked 2 objective-c automatic-ref-counting
我正在尝试将我的代码转换为Objective-C ARC并获得多个错误.
1:
NSBezierPath *path = [NSBezierPath bezierPath];
CGPathApply(pathRef, path, CGPathCallback); //error
Run Code Online (Sandbox Code Playgroud)
它说:使用ARC不允许将Objective.C指针隐式转换为'void*'
2:
static void CGPathCallback(void *info, const CGPathElement *element) {
NSBezierPath *path = info; //error
[…] }
Run Code Online (Sandbox Code Playgroud)
它说:ARC不允许将非Objective-C指针类型'void*'隐式转换为'NSBezierPath*'
任何想法,我如何解决问题?
你需要使用桥接演员表.在这种情况下,您只需要简单的__bridge修饰符,例如
NSBezierPath *path = [NSBezierPath bezierPath];
CGPathApply(pathRef, (__bridge void *)path, CGPathCallback);
Run Code Online (Sandbox Code Playgroud)
和
static void CGPathCallback(void *info, const CGPathElement *element) {
NSBezierPath *path = (__bridge NSBezierPath*)info;
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3528 次 |
| 最近记录: |