在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
并不是绝对必需的,但是它可以帮助编译器理解代码的含义,并在优化时做得更好。也有单独的
in
和out
注释,但据我所知,当您滥用它们时,没有编译器警告,而且Apple似乎再也没有使用它们了。关于ios - inout CGPoint *作为参数是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18856415/