在 UIScrollView 委托方法中,有:
scrollViewWillEndDragging:withVelocity:targetContentOffset:
最后一个参数是:
(inout CGPoint *)targetContentOffset
我很好奇 inout 的含义以及为什么 CGPoint 是指针。我尝试将 targetContentOffset 打印到控制台,但我也不知道该怎么做。任何帮助表示赞赏!
在 UIScrollView 委托方法中,有:
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
注释,但据我所知,当你滥用它们时没有编译器警告,而且苹果似乎不再使用它们了。