gpt4 book ai didi

iphone - 将 CFTypeRef(又名 const void*)发送到类型为 'void *' 的参数会丢弃限定符

转载 作者:太空狗 更新时间:2023-10-30 03:59:27 24 4
gpt4 key购买 nike

以下代码中会发出警告。使用 ARC。

if ( aAnim ) {
[UIView beginAnimations:nil context:CFBridgingRetain([NSNumber numberWithInt:aOff])];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(postSpin:finished:toCCWCellOffset:)];
}

最佳答案

CFBridgingRetain 返回一个声明为 const void *CFTypeRef

[UIView beginAnimations:context:]context 参数是一个void *(没有const),因此出现警告。

您可以改用 __bridge_retained 来修复该警告:

[UIView beginAnimations:nil context:(__bridge_retained void *)[NSNumber numberWithInt:aOff]];

请注意,您必须通过在上下文不再存在时释放上下文来平衡 retain用过的。例如,这可以通过转移所有权在“停止选择器”中完成回到 Objective-C 对象:

id obj = (__bridge_transfer id)context;

关于iphone - 将 CFTypeRef(又名 const void*)发送到类型为 'void *' 的参数会丢弃限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17038376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com