目标C中integerVlue和intvalue之间的差是多少

Dev*_*der 2 objective-c

嗨,我是obj C的新手,并且我将文本字段值分配给int变量PaidLeaves,如下所示:因为文本字段返回字符串值,所以我必须将其转换为int值,所以我使用以下代码:例如

PaidLeaves = txtPaidLeaves.text.intValue;
Run Code Online (Sandbox Code Playgroud)

PaidLeaves = txtPaidLeaves.text.integerValue;
Run Code Online (Sandbox Code Playgroud)

以上我正在将文本字段值分配给int值

两者都有效,但是两个表达式之间有什么区别

请告诉我谢谢

vit*_*rmm 5

  • intValue返回一个int数。
  • integerValue返回一个NSInteger编号。

它们之间的区别是它们的位数,或者更简单地说,是它们可以存储的值的范围。在回答另一个问题时说:

int始终为32位。

long long始终是64位。

NSInteger和long始终为指针大小。这意味着它们在32位系统上为32位,在64位系统上为64位。

参考:https : //stackoverflow.com/a/4445467/4370893

考虑到苹果自2011年发布Mac OS X 10.7(Lion)以来仅制造了64位系统,因此我要指的是NSInteger具有64位长的整数。

那是什么意思呢?

有符号整数的第一位,例如NSInteger和int,用于定义它是正数还是负数。结论是有符号整数从-2 ^(位数-1)到2 ^(位数-1)-1,所以...

  • int: -2,147,483,648(-2 ^ 31)至2,147,483,647(2 ^ 31-1)
  • NSInteger: -9,223,372,036,854,775,808(-2 ^ 63)至9,223,372,036,854,775,807(2 ^ 63-1)