标签: nsuinteger

我应该使用Core Data中的NSNumber(整数16,32,64)来保留NSUInteger

我想将NSUInteger保留到我的核心数据中,我不知道应该使用哪种类型(整数16,32,64)来满足所需的空间.

根据我的理解:

Integer 16 can have minimum value of -32,768 to 32,767
Integer 32 can have minimum value of -2,147,483,648 to 2,147,483,647
Integer 64 can have minimum value of -very large to very large
Run Code Online (Sandbox Code Playgroud)

和NSUInteger是unsigned long的类型def,等于unsigned int(iPhone上的objective-c中的类型)

所以,如果我使用numberWithUnsignedInteger将我的NSUInteger转换为NSNumber:并将其保存为NSNumber(整数32),我可以安全地检索我的数据吗?

core-data nsuinteger

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

int,NSInteger和NSUInteger之间的区别

是什么之间的主要区别int,NSIntegerNSUInteger在Objective-C?

哪一个更适合在应用程序中使用?为什么?

iphone int objective-c nsinteger nsuinteger

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

如何在objectiveC中将NSUInteger值转换为int值?

如何在objectiveC中将值转换NSUIntegerint值?

以及如何打印NSUInteger价值NSLog,我试过%@,%d,%lu这些不起作用,并抛出Ex-Bad Access错误.

谢谢

int objective-c nsuinteger ios

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

如何将NSUInteger转换为NSString?

你怎么把一个NSUInteger变成一个NSString?我已经尝试了,但我一直NSString都是0.

NSUInteger NamesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];  
NSLog(@"--- %d", NamesCategoriesNSArrayCount);  
[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d",    NamesCategoriesNSArrayCount]];  
NSLog(@"=== %d", NamesCategoriesNSArrayCountString);
Run Code Online (Sandbox Code Playgroud)

objective-c nsstring nsuinteger

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

将NSInteger转换为NSUInteger?

我正在尝试将NSInteger转换为NSUInteger,我用Google搜索并发现没有真正的答案.我该怎么做?

objective-c nsinteger nsuinteger

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

NSString到NSUInteger

我在NSString中有一个数字@"15".我想把它转换成NSUInteger,但我不知道怎么做...

cocoa-touch nsstring iphone-sdk-3.0 nsuinteger

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

为什么cocoa到处都没有使用相同的枚举声明风格?

我想知道可可的不同风格的枚举声明背后的理由是什么?

像这样:

enum { constants.. }; typedef NSUInteger sometype;
Run Code Online (Sandbox Code Playgroud)

是否有理由使用typedef来获取NSUInteger的分配而不进行强制转换?

有时typedef是NSInteger/NSUInteger,为什么不总是使用NSInteger?使用NSUInteger真的有好处吗?

枚举标记名有时仍然使用,就像这里的_NSByteOrder.

这个答案也非常有用:Objective-C中的typedef枚举是什么?.

cocoa objective-c nsinteger nsuinteger

12
推荐指数
2
解决办法
3507
查看次数

如何将typedef enum转换为NSNumber?

  1. 每个值都typedef enum被视为一个int

    例如,给出以下内容typedef enum:

    // UIView.h
    
    typedef enum {
        UIViewAnimationCurveEaseInOut,
        UIViewAnimationCurveEaseIn,
        UIViewAnimationCurveEaseOut,
        UIViewAnimationCurveLinear
    } UIViewAnimationCurve;
    
    Run Code Online (Sandbox Code Playgroud)

    我如何知道使用哪种方法创建NSNumber

    + (NSNumber *)numberWithShort:(short)value;
    + (NSNumber *)numberWithUnsignedShort:(unsigned short)value;
    + (NSNumber *)numberWithInt:(int)value;
    + (NSNumber *)numberWithUnsignedInt:(unsigned int)value;
    + (NSNumber *)numberWithLong:(long)value;
    + (NSNumber *)numberWithUnsignedLong:(unsigned long)value;
    + (NSNumber *)numberWithLongLong:(long long)value;
    + (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value;
    + (NSNumber *)numberWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0);
    + (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);
    
    Run Code Online (Sandbox Code Playgroud)

    我认为这+[NSNumber numberWithInt:]是正确的使用方法,因为使用Core Data实现Enums的最佳方法可接受答案.例如:

    [NSNumber numberWithInt:UIViewAnimationCurveLinear]
    
    Run Code Online (Sandbox Code Playgroud)

    但是,如果+[NSNumber numberWithInt:]是正确的,为什么呢?

  2. 对于按位 …

enums typedef nsnumber nsinteger nsuinteger

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

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

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

crash uitableview nsuinteger ios

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

比较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
查看次数