我收到了编译器的警告:
Implicit conversion changes signedness: 'NSInteger' (aka 'int') to 'NSUInteger' (aka 'unsigned int')
来自此代码:
- (NSInteger) tableView:(__unused UITableView *)tableView numberOfRowsInSection:(__unused NSInteger)section {
return [_data count];
}
我理解警告(委托方法期望NSInteger,但它的方式是奇怪的)。如果我将[_data count]转换为NSInteger,这是正确的方法来使警告静音吗?
它可能(非常不可能,但是因为我正在学习)缓冲区溢出。由于演员阵容会减少可能的数值。
答案 0 :(得分:0)
制作演员阵容是可以的;这表明你有意进行转换。
这不会导致缓冲区溢出。在特殊情况下,它可能会导致价值低于您的预期(因为NSUInteger
可以保持比NSInteger
更大的正值。
但是,考虑到UITableView
中这个代表的实际使用情况,不可能出于所有意图和目的,这是不可能的。