标签: nsuinteger

NSIntegerMax vs NSUIntegerMax

NSUInteger index = [self.objects indexOfObject:obj];

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

if (index == NSUIntegerMax) {
    // Fails!
}
Run Code Online (Sandbox Code Playgroud)

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

arrays objective-c nsinteger nsuinteger

6
推荐指数
1
解决办法
4600
查看次数

比较NSIndexPath的行和NSArray计数时,是否有更好的方法来避免“符号比较”警告?

我在XCode中为我的iOS项目打开了“签名比较”(又名-Wsign-compare)警告(令人惊讶的是,默认情况下它处于关闭状态)。之后,出现了许多这样的警告:

/Users/michalciuba/projects/GlobeMobile/Classes/ACMailController.m:86:19: Comparison of integers of different signs: 'NSInteger' (aka 'long') and 'NSUInteger' (aka 'unsigned long')
Run Code Online (Sandbox Code Playgroud)

它们通常通过比较造成row的财产NSIndexPathNSInteger由“计数”的方法的返回值NSArray,如下所示:

if(indexPath.row < [self.myDataArray count]) 
Run Code Online (Sandbox Code Playgroud)

可以通过强制转换来简单地解决警告:

if(indexPath.row < (NSInteger)[self.myDataArray count]) 
Run Code Online (Sandbox Code Playgroud)

但是,如果要比较每个地方的值,则必须这样做。他们正在数十个地方进行比较。我想知道是否有更好,更聪明的方法来解决这个问题?我不想关闭此警告,因为它可能有助于防止出现无符号整数下溢之类的问题。

objective-c clang nsinteger nsuinteger ios

6
推荐指数
1
解决办法
619
查看次数

隐式转换失去整数精度:'long long'到'NSInteger'(又名'int')

我试图将类型为"long long"的变量赋值给NSUInteger类型,这样做的正确方法是什么?

我的代码行:

expectedSize = response.expectedContentLength > 0 ? response.expectedContentLength : 0;
Run Code Online (Sandbox Code Playgroud)

其中expectedSizeNSUInteger类型,返回类型为response.expectedContentLength' long long'.变量response属于类型NSURLResponse.

显示的编译错误是:

语义问题:隐式转换失去整数精度:'long long'到'NSUInteger'(又名'unsigned int')

nsuinteger ios ios5 xcode4.2 long-integer

5
推荐指数
2
解决办法
2万
查看次数

我可以使用NSCoder :: encodeInteger:forKey:和decodeIntegerForKey:参数类型为NSUInteger的方法吗?

我需要进行编码和解码类型的财产NSUIntegerNSCoder.

使用方法NSCoder::encodeInteger:forKey:NSCoder::decodeIntegerForKey:方法是否安全?

我想到的另一种方法是将无符号整数包装到NSNumber第一位.但这意味着更多的代码,我不喜欢它.

objective-c primitive-types nsinteger nsuinteger nscoder

5
推荐指数
1
解决办法
656
查看次数

NSUInteger和NaN的价值?

为什么NSUInteger的值为2 ^ 32 - 1而不是2 ^ 32?这个事实与纳米值的需要之间是否存在关系?这太令人困惑了.

cocoa objective-c nan foundation nsuinteger

3
推荐指数
1
解决办法
769
查看次数

将NSUInteger添加到NSMutableArray

你好我正在研究一个项目,我正在尝试将NSUInteger添加到NSMutableArray.我是Objective-C和C的新手.当我运行应用程序时,NSLog显示为null.

我很感激任何人都能提供的帮助.

这是我的代码

-(NSMutableArray *)flipCardAtIndex:(NSUInteger)index
{
    Card *card = [self cardAtIndex:index];
    [self.flipCardIndexes addObject:index];

    if(!card.isUnplayable)
    {
        if(!card.isFaceUp)
        {
            for(Card *otherCard in self.cards)
            {
                if(otherCard.isFaceUp && !otherCard.isUnplayable)
                {
                    int matchScore = [card match:@[otherCard]];
                    if(matchScore)
                    {
                        otherCard.unplayable = YES;
                        card.unplayable = YES;
                        self.score += matchScore * MATCH_BONUS;
                    }
                    else 
                    {
                        otherCard.faceUp = NO;
                        self.score -=MISMATCH_PENALTY;
                    }
                    break;
                }
            }
            self.score -=FLIP_COST;
        }
        card.faceUp = !card.isFaceUp;
    }
    NSLog(@"%@",self.flipCardIndexes[self.flipCardIndexes.count-1]);
    return self.flipCardIndexes;
}
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray nsuinteger ios

3
推荐指数
1
解决办法
3002
查看次数

使用ARC将NSUInteger转换为字符串

我正在尝试将NSUInteger转换为字符串,以便我可以打印消息.从搜索,似乎我需要使用stringWithFormat,但我收到一个错误,ARC不允许隐式转换.

这是有问题的一行:

NSString *text = [[NSString stringWithFormat: (@"%li",  NSUInteger)];
Run Code Online (Sandbox Code Playgroud)

我试过在没有帮助的情况下将格式说明符更改为%lu.

谢谢.

objective-c nsstring nsuinteger

3
推荐指数
1
解决办法
8999
查看次数

NSUInteger到int

我写了一个使用myarray的方法,在同一个类中定义.当我使用count时它总是返回0.当我使用:

printf("%d", [myarray count]);
Run Code Online (Sandbox Code Playgroud)

编译说:

Format '%d' expetcs type 'int', but argument 2 has type 'NSUInteger'
Run Code Online (Sandbox Code Playgroud)

为什么?

cocoa printf nsuinteger

2
推荐指数
1
解决办法
2104
查看次数

如何增加NSUInteger变量?

NSUInteger wordInt = sentence.length;
Run Code Online (Sandbox Code Playgroud)

我想像这样添加1 - > wordInt = wordInt + 1 ;

但它不起作用.我不知道....

请!!

iphone nsuinteger

1
推荐指数
1
解决办法
1828
查看次数

iOS:NSInteger和NSUInteger比较

惊喜!

我有一个像这样的变量,

NSInteger index = 0;
Run Code Online (Sandbox Code Playgroud)

我正在将它与其中一个子视图count(返回NSUInteger)进行比较,

if((index-1) <= [[currentmonth subviews] count]) 
{
    NSLog(@"true");
}
else
{
    NSLog(@"false");
}
Run Code Online (Sandbox Code Playgroud)

这总是假的.

但如果我这样做,

if ((index-1) <= 42) {
    NSLog(@"true");
} else {
    NSLog(@"false");
}
Run Code Online (Sandbox Code Playgroud)

这总是给人的.

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

当我有一个基于这种逻辑的工作解决方案时,我发现了这个问题.但它根本不是真的.

comparison objective-c nsinteger nsuinteger ios

1
推荐指数
1
解决办法
8160
查看次数