gpt4 book ai didi

iOS : NSInteger and NSUInteger comparison

转载 作者:行者123 更新时间:2023-12-01 17:52:27 26 4
gpt4 key购买 nike

惊喜!

我有一个这样的变量,

NSInteger index = 0;

我将它与这样的 subview 计数之一(返回 NSUInteger )进行比较,
if((index-1) <= [[currentmonth subviews] count]) 
{
NSLog(@"true");
}
else
{
NSLog(@"false");
}

This always giving false.



但如果我这样做,
if ((index-1) <= 42) {
NSLog(@"true");
} else {
NSLog(@"false");
}

This always giving true.



我觉得,这是因为我们无法比较 NSIntegerNSUInteger正确的?

当我有一个基于此逻辑的可行解决方案时,我发现了这个问题。 但它根本不是真的。

最佳答案

我找到了这个,NSUInteger vs NSInteger, int vs unsigned, and similar cases

这个答案对此给出了很好的解释!

在处理 NSUInteger 与 NSInteger 时,您还应该注意整数转换规则:

例如,以下片段返回 0(假),尽管您希望它打印 1(真):

NSInteger si = -1;
NSUInteger ui = 1;
printf("%d\n", si < ui);

原因是 [si] 变量被隐式转换为无符号整数!

CERT's Secure Coding site围绕这些“问题”以及如何解决这些问题进行深入讨论。

关于iOS : NSInteger and NSUInteger comparison,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25480412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com