首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Objective-C不能将NSInteger分配给NSInteger变量?

Objective-C不能将NSInteger分配给NSInteger变量的原因是NSInteger是一种基本数据类型,而不是一个对象类型。在Objective-C中,NSInteger是一个typedef定义的别名,它可以根据编译器和平台的不同,被定义为int或long类型。因此,NSInteger变量只能存储整数值,而不能存储指针或其他对象类型。

如果想要将一个NSInteger值赋给另一个NSInteger变量,可以直接使用赋值操作符(=)进行赋值。例如:

NSInteger num1 = 10;

NSInteger num2 = num1;

这样就可以将num1的值赋给num2。

需要注意的是,NSInteger在不同平台上的字节大小可能会有所不同。在32位平台上,NSInteger通常被定义为int类型,而在64位平台上,NSInteger通常被定义为long类型。因此,在进行跨平台开发时,需要注意NSInteger的字节大小可能会有所变化,可能会导致数据溢出或类型不匹配的问题。

关于NSInteger的更多信息,可以参考腾讯云的官方文档:https://cloud.tencent.com/document/product/631/18542

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

NSInteger说开去

能用int就坚决不用NSInteger,能用float就坚决不用CGFloat。你可能会问,虽然这个过程用到的语言很杂,写Objective-C的时候就大胆的用Foundation的数据类型呗。...想法很好,只是当时我看不懂我们网络库实现原因不敢乱改代码,怕伤着哪个地方的逻辑,最后代码移着移着,我的.m文件就变成了.mm文件——对,变成Objective-C和C++混编代码了。...当然,以上的前提都是基于一个很大范围数字变量所要考虑的。...当你的变量值的范围在一个你可控的范围内,使用int反而更合适,比如说,你要保存一张手机照片的尺寸,那么几千的值是绝对够了的,于是用int也不会产生任何问题,而用NSInteger反而增加代码阅读难度。...什么时候用NSInteger 其实在Apple的文档或者示例代码里,int和NSInteger都会存在,大多数出现NSInteger是在函数的返回值上。

93810

(译)Objective-C 类属性

由于它们是类级别的也不是实例变量,因此我们把他们声明为静态的: @implementation User static NSUUID *_identifier = nil; static NSInteger...注意使用 +使我们的getter 方法变成一个类方法: + (NSInteger)userCount { return _userCount; } identifier 属性则 getter方法 和...生成的Swift接口 似乎,Objective-C 最近的这些改进只是为了提高与Swift的互操作性。Objective-C中新添加的类型属性对应的是Swift中类变量的用法。...public class func resetIdentifier() } 注意,identifier 类属性是一个会隐式解包的变量,意味着我们永远也希望它为nil。...为了允许它为nil,我们需要在Objective-C的属性声明里添加一个 nullable的标识。 我们的Swift 变量也将会是可选类型的。

1.6K30

ios开发Runtime详解part1

就像我们开发或者运行java程序需要安装jdk一样,使用Objective-C编写的程序也需要在一个特定的环境下才能运行,这个环境就是Objective-C runtime system, 程序运行的时候可以动态载入类以及向其他的对象发送消息...由于现在ios开发已经全部需要支持64位了,这里只介绍Objective-C 2.0的runtime, 也被苹果称之为 “现代的运行时(the modern runtime)”, 其新的特性为: 当在...age; - (BOOL)canDrink:(NSInteger)age; @end RuntimeObject.m: #import "RuntimeObject.h" @implementation...RuntimeObject - (BOOL)canDrink:(NSInteger)age { return age >= 18; } @end 下面先创建一个RuntimeObject...NSObject class]]); // 输出: Kind of NSObject: 1 RuntimeObject是NSObject的子类,所以是NSObject 执行这个对象中的方法: Objective-C

30720

OC基础--数据类型与表达式

一 数据类型 Objective-C是在C语言基础上拓展出的新语言,所以它是完全兼容C语言代码的,C语言中的基本数据类型如int、float、double和char在Objective-C中是完全可以正常使用的...Autumn = 3, //可以指定整数,后面的在这个基础上自增 Winter }; //结构体是一种集合,它里面包含了多个变量或数组...,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员 //结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙) struct StructDemo...OC中的NSInteger就是对整型的一个封装,64-bit系统上NSInteger对应的是长整形,32-bit系统上对应的是整型。...typedef long NSInteger; typedef unsigned long NSUInteger; #else typedef int NSInteger; typedef unsigned

95330

窥探Swift之需要注意的基本运算符和高级运算符

积跬步无以至千里,积小流无以成江海。虽然需要进阶,但是基础还是蛮重要。今天博客前半部分是需要注意的基础运算符,有基础运算符当然就有高级运算符,接着会介绍一些高级运算符。...大概意思就是取模运算不支持浮点类型,请转换成NSInteger类型。 ?     ...在实例中我们先定义一个可选类型的字符串变量developLanguage,来记录开发语言, 再定义一个选择开发语言的字符串变量selectLanguage。...运算符中使用可选类型变量时没有使用!强制打开可选类型的值, 因为在??运算符中能确保使用的可选类型变量中有值,如果没有值就不打开使用,所以就可以把!省略掉。 ?   ...异或的用法是比较多的,我们可以使用异或运算在创建临时变量时来交换两个数的值。具体如下: ?

1K50

ARC(Automatic Reference Counting )技术概述

这里我把此技术翻译为自动内存计数器管理技术,下图是使用和不使用此技术的Objective-C代码的区别。 ?...ARC技术是随着XCode4.2一起发布的,在缺省工程模板中,你可以指定你的工程是否支持ARC技术,如果你指定工程支持ARC技术,在代码中你必须使用管理内存的代码来管理内存。...ARC在编译期间为每个Objective-C指针变量添加合适的retain, release, autorelease等函数,保存每个变量的生存周期控制在合理的范围内,以期实现代码上的自动内存管理。...不能在C语言中的结构中使用Objective-c中的类的指针。 请使用类类管理数据。 不能使用NSAutoreleasePool....NSZone不再需要—本来这个类已经被现代Objective-c废弃。 ARC在函数和便利变量命名上也有一些新的规定 禁止以new开头的属性变量命名。

1.6K160

编程规范之《招聘一个靠谱的iOS》

doLogIn 方法命名规范:添加了多余的动词前缀。 请牢记: 如果方法表示让对象执行一个动作,使用动词打头来命名,注意不要使用 do,does 这种多余的关键字,动词本身的暗示就足够了。...Objective-C 有 designated 和 secondary 初始化方法的观念。...编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)》。)...要是写明语义的话,该类的调用者就不知道初始化方法里会拷贝这些属性,他们有可能会在调用初始化方法之前自行拷贝属性值。这种操作多余而且低效。...这在《禅与Objective-C编程艺术 >》里有介绍。而且习惯上修改某个属性的修饰符时,一般从属性名从右向左搜索需要修动的修饰符。

62670
领券