为什么NSInteger而不是"numberOfSectionInTableView:"中的NSUInteger?

pas*_*aya 9 crash uitableview nsuinteger ios

UITableView数据源方法numberOfSectionsInTableView:的返回类型为NSInteger.但是,UITableView不能有负数行; 它有0行或更多行,那么为什么NSInteger的返回类型呢?是否允许与返回的负整数相关的崩溃?

bor*_*den 5

您无法(if var < 0) return;使用无符号整数进行检查.这是优先选择的标准原因.真的是使用无符号整数的唯一原因是如果你需要额外的大数字空间,你可以保证输入永远不会小于零.

  • 我认为需要额外的空间与这样的决定无关.如果某些东西不可能是负值,那么它应该被声明为无符号类型.Apple甚至不能说这就是他们在这里使用NSInteger的原因:如果这是他们的原因,那么他们也应该在NSArray count和其他NSArray方法上使用NSInteger. (2认同)