IOS int NSInteger NSNumber区分

1.NSNumber 是一个类继承于NSValue 即一个基本数据类型的集合 包括char a signed or unsigned char, short int, int, long int, long long int, float, or double or as a BOOL

NSNumber类型有点类似id类型,对于任何类型的数字对象都能用它来声明,也就是用它来声明数字对象,通过声明,很难判断声明变量是什么数字类型,确定数字对象类型多是在初始化的时候才能确定。

2.int   :32位整型

int 是整数类型,有符号unsigned int 是无符号的整数类型

当使用int类型定义变量的时候,可以像写C程序一样,用int也可以用NSInteger,推荐使用NSInteger 因为这样就不用考虑设备是32位还是64位了(随编译器变化而变化 对于不同平台32,64位有不同的最大值(int long))。

3.

NSUInteger是无符号的,即没有负数,NSInteger是有符号的。

NSInteger是基础类型,NSNumber是一个类,如果需要存储一个数值,直接使用NSInteger是不行的,比如在一个数组里使用下面的语句就会报错:

NSArray *array = [NSArray alloc] init];
[array addObject:3];
因为array里应该是一个类,但‘3’不是,所以需要用NSNumber:

 NSArray *array = [NSArray alloc] init];
[array addObject:[NSNumber numberWithInt:3]];  
时间: 2024-11-09 00:58:59

IOS int NSInteger NSNumber区分的相关文章

iOS开发之int,NSInteger,NSUInteger,NSNumber的使用

1.首先先了解下NSNumber类型: 苹果官方文档地址:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSNumber_Class/Reference/Reference.html NSNumber是NSValue的一个子类,它是一个对象来存储数字值包括bool型,它提供了一系列的方法来存储char a signed or unsigned char, short

ios开发 int,NSInteger,NSUInteger,NSNumber

分享一下,在工作工程中遇到的一些不留心的地方: 1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的.2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的.3.有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的. NSInteger是基础类型,但是NSNumber是一个类.如果想要在NSMutable

【IOS】int,NSInteger,NSUInteger,NSNumber

1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的. 2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的. 3.有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的. NSInteger是基础类型,但是NSNumber是一个类.如果想要存储一个数值,直接用NSInteger是不行的,比如在一个Arr

Objective-C数组 NSArray与NSMutableArray的区别 NSDictionary与 NSMutableDictionary 的区别 == int,NSInteger,NSUIn

Objective-C数组相关操作. // insert code here... NSLog(@"数组"); //指定多个字符串创建数组 NSArray *array; array=[NSArrayarrayWithObjects:@"0-asd",@"1-fds",@"2-哈咯",@"3-个人",nil]; //数组的长度 NSLog(@"数组长度%d",array.count);

【学习总结】整理一下int, NSInteger 等概念

基本需要知道的 : unsigned : 没符号的 signed  : 有符号的 int : 整型 看看OC的定义 : 1 #if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64 2 typedef long NSInteger; 3 typedef unsigned long NSUInteger; 4 #else 5 typedef int N

iOS 基础类解析 - NSNumber

NSNumber Class Reference Inherits from NSValue : NSObject Conforms to NSCopying (NSValue) NSSecureCoding (NSValue) NSObject (NSObject) Framework /System/Library/Frameworks/Foundation.framework Availability Available in iOS 2.0 and later. Declared in

iOS开发-- 使用NSNumber将int、float、long等数据类型加入到数组或字典中

// 设置值 NSNumber *number=[NSNumber numberWithInt:45]; // 取值 NSLog(@"NSNumber %d",[number intValue]);

[转]iOS NSInteger/NSUInteger与int/unsigned int、long/unsigned long之间的区别

在iOS开发中经常使用NSInteger和NSUInteger,而在其他的类似于C++的语言中,我们经常使用的是int.unsigned int.我们知道iOS也可以使用g++编译器,那么它们之间是否有什么联系呢? 从NSUInteger和NSInteger的定义文件中 NSObjCRuntime.h发现有这样的语句: #if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUI

iOS NSInteger/NSUInteger与int/unsigned int、long/unsigned long之间的区别!

在iOS开发中经常使用NSInteger和NSUInteger,而在其他的类似于C++的语言中,我们经常使用的是int.unsigned int.我们知道iOS也可以使用g++编译器,那么它们之间是否有什么联系呢? 从NSUInteger和NSInteger的定义文件中 NSObjCRuntime.h发现有这样的语句: 1 #if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_B