objective-c – NSIntegerMax vs NSUIntegerMax

前端之家收集整理的这篇文章主要介绍了objective-c – NSIntegerMax vs NSUIntegerMax前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
NSUInteger index = [self.objects indexOfObject:obj];

if (index == NSNotFound) {
    // Success! Note: NSNotFound internally uses NSIntegerMax
}

if (index == NSUIntegerMax) {
    // Fails!
}

为什么?我想由于indexOfObject而得到一个无符号值.所以,当然,我假设如果找不到该对象,它将返回NSUIntegerMax而不是NSIntegerMax.这是一个错误,还是对这种行为有合理的解释.

解决方法

也许NSNotFound可以在使用NSInteger的上下文中使用.如果有人将索引声明为NSInteger而不是NSUInteger,它也更安全.

至多,可以说NSNotFound被定义为NSIntegerMax很奇怪,但它肯定不是一个bug.

原文链接:https://www.f2er.com/c/110367.html

猜你在找的C&C++相关文章