在UIScrollView委托(delegate)方法中,有:
scrollViewWillEndDragging:withVelocity:targetContentOffset:
最后一个参数是:
(inout CGPoint *)targetContentOffset
我对inout的含义以及CGPoint是指针的原因感到好奇。我尝试将targetContentOffset打印到控制台,但不确定如何执行。任何帮助表示赞赏!

最佳答案

这意味着该参数用于发送数据in,但也用于获取数据out

让我们看一个示例实现:

- (void)increment:(inout NSUInteger*)number {
    *number = *number + 1;
}


NSUInteger someNumber = 10;
[self increment:&someNumber];
NSLog(@"Number: %u", someNumber); //prints 11

此模式通常与C结构一起使用,例如CGPoint,因为它们按值传递(复制)。

还要注意inout并不是绝对必需的,但是它可以帮助编译器理解代码的含义,并在优化时做得更好。

也有单独的inout注释,但据我所知,当您滥用它们时,没有编译器警告,而且Apple似乎再也没有使用它们了。

关于ios - inout CGPoint *作为参数是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18856415/

10-11 23:51