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

在Cocoa你喜欢NSInteger还是int,为什么?

在Cocoa中,我通常会使用NSInteger,而不是int。这是因为NSInteger是一个平台无关的整数类型,它可以确保在不同的平台和操作系统上具有相同的大小和符号。而int类型的大小和符号可能会因为不同的编译器和操作系统而有所不同。

此外,使用NSInteger还可以使代码更加符合Cocoa的编码风格和规范。因为在Cocoa中,其他类型(如NSUInteger、CGFloat等)也使用了NSInteger作为基础类型,这样可以保持代码的一致性和可读性。

总之,在Cocoa中,我会选择使用NSInteger而不是int,因为它更加符合平台无关性、可读性和一致性的要求。

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

相关·内容

id类型和instancetype类型

不过,还是有其他例子存在,比如length方法,UILayoutSupport中返回CGFloat,NSString里返回NSUInteger 对于初始化器,这个就更加复杂了。...这也就是为什么很多人会说使用instancetype不是必须的。当然我认为还是应该去这么写。下面会解释为什么: 这有三个好处: 明确性。的代码的行为如同写的那样,而不是其他行为。 模式化。...最好的情况下而言,会学会忽略这两行的差别。但这并不是应该学会忽略的,对来说这两句应该是不一样的 模式化: 当然init方法和其他方法没有区别,但一旦定义一个类工厂,那就有差别了。...如果习惯于对init使用id类型,的代码看起来是这样: - (id)initWithBar:(NSInteger)bar; + (instancetype)fooWithBar:(NSInteger...当然,还是会有很多需要写id类型的情形,但可能用instancetype会更多一些。

1.7K10

iOS开发 MVVM+RAC 的使用Demo效果ReactiveCocoa简介Demo分析代码Demo地址

主要是因为一直跑面试。 终于还是在上海入职了! 由于项目原因最终还是入了MVVM+RAC的坑 下面是正题。 Demo效果 使用MVVM+RAC请求网络数据 ?...demo.gif ReactiveCocoa简介 iOS开发过程中,当某些事件响应的时候,需要处理某些业务逻辑,这些事件都用不同的方式来处理。...Block比传统回调函数有2点优势: 允许调用点上下文书写执行逻辑,不用分离函数 Block可以使用local variables....基于以上种种优点Cocoa Touch越发支持Block式编程,这点从UIView的各种动画效果可用Block实现就可以看出。...而BlocksKit是对Cocoa Touch Block编程更进一步的支持,它简化了Block编程,发挥Block的相关优势,让更多UIKit类支持Block式编程。

1.6K40

六个方向关于iOS100个面试题,都会了吗?

小编这里有个自己的学习交流群681503716(验证编号:大鲨),不管你是大牛还是小白,欢迎入驻一起交流学习,iOS的道路上我们一起成长!...关于编程 Cocoa Touch包含什么?不包含什么? 为什么Cocoa Touch的类名称是以两个大写字母开头的? Swift和Objective-C分别是什么?两者相比有何不同之处,又有何联系?...Swift中,什么时候该用let,什么时候该用var? 为什么map函数必不可少?该在什么情况下使用它? 会选择什么工具来追踪Bug? 如果在Cocoa中发现一个Bug,会如何处理?...最引以为豪的作品是什么? 谈一谈常用的开发工具都有哪些优势? 最敬佩的独立Mac或者iOS应用开发者是谁? 最喜欢什么项目?哪种类型的? 觉得Xcode有哪些需要改进的地方?...iOS上喜欢哪些API? 是否有最中意的错误报告? 最爱以哪种方式来检验一项新技术是否好用? 为什么词典被称作Dictionaries,而不是HashTable或HashMap?

3.6K50

100个iOS开发面试题汇总

无论是对于公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,从编程、设计、App Store等各个方面对iOS开发者及设计师面试时可能会遇到的问题进行了筛选与汇总。...关于编程 37 Cocoa Touch包含什么?不包含什么? 38 为什么Cocoa Touch的类名称是以两个大写字母开头的? 39 Swift和Objective-C分别是什么?...43 Swift中,什么时候该用let,什么时候该用var? 44 为什么map函数必不可少?该在什么情况下使用它? 45 会选择什么工具来追踪Bug?...46 如果在Cocoa中发现一个Bug,会如何处理? 47 如果应用的新版本出现了Regression的情况,该如何补救?如何防止用户使用过程中遇到新的Bug?...最引以为豪的作品是什么? 93 谈一谈常用的开发工具都有哪些优势? 94 最敬佩的独立Mac或者iOS应用开发者是谁? 95 最喜欢什么项目?哪种类型的?

1.1K30

3. __block  __weak  __strong   这都是做什么的

Blockmain中实现 int main(int argc, const char * argv[]) { @autoreleasepool { NSInteger val = 10; void (...__block.jpg 至此,已经展示了__block变量Block中查找和修改的过程,那么: 当Block作为回调执行时,局部变量val已经出栈了,这个时候代码为什么还能正常工作呢?...有些情况下我们可以不用手动复制,比如Cocoa框架中使用含有usingBlock方法名的方法时,或者GCD的API中传递Block时。...__strong 上面提到,__weak很好的解决retain Cycle,但还是会存在一些隐患。不知道self什么时候被释放,为了保证Block内部不会被释放,所以使用__strong修饰。...形成了你中有我,我中有,造成谁都无法将谁释放。从而发生内存泄漏。

56530

CoreText实现图文混排之点击事件

通过touchBegan方法拿到当前点击到的点,然后通过坐标判断这个点是否某段文字上,如果在则触发对应事件。 上面呢就是主要思路。接下来呢,我们来详细讲解一下。还是老规矩,先上代码。...为什么我要设置成优先响应图片的事件呢?...可以返回point是否frame中。 不过还是有一点需要注意的。由于传入的point是系统坐标(本例中),所以frame我们一定要传入系统坐标系下的frame才能正确对应。...通过以上方法,就拿到了每一个字符的frame了。 可以返回至上一层了=。=喘了一口气。。。 接受到字符的frame,还是判断点击位置是否frame中,如果在,则响应点击事件并结束方法。...要是喜欢呢,麻烦你动一动可爱的小手点击一下喜欢或者关注,毕竟老司机这么爱慕虚荣的人,而且老司机会经常更新的。 哦,这段代码是我自己的解决方案,所以要转载的同学,一定要注明出处哦,这次是一定哦。

95720

iOS程序员面试,绝对会遇到这些问题!

关于编程 Cocoa Touch包含什么?不包含什么? 为什么Cocoa Touch的类名称是以两个大写字母开头的? Swift和Objective-C分别是什么?两者相比有何不同之处,又有何联系?...为什么OptionalSwift语言中非常重要? 请解释一下NSError。Swift中,什么情况下能使用NSError ,什么情况下不能? 请说明如何使用Instancetype及其重要性。...Swift中,什么时候该用let,什么时候该用var? 为什么map函数必不可少?该在什么情况下使用它? 会选择什么工具来追踪Bug? 如果在Cocoa中发现一个Bug,会如何处理?...最引以为豪的作品是什么? 谈一谈常用的开发工具都有哪些优势? 最敬佩的独立Mac或者iOS应用开发者是谁? 最喜欢什么项目?哪种类型的? 觉得Xcode有哪些需要改进的地方?...iOS上喜欢哪些API? 是否有最中意的错误报告? 最爱以哪种方式来检验一项新技术是否好用? 为什么词典被称作Dictionaries,而不是HashTable或HashMap?

1.4K20

CALayer的寄宿图

但是为什么iOS要基于UIView和CALayer提供两个平行的层级关系呢?为什么不用一个简单的层级来处理所有的事情呢?原因在于要做职责分离,这样能避免很多重复代码。...iOS和MacOS两个平台上,事件和用户交互有很多地方的不同,基于多点触控的用户界面和基于鼠标键盘有着本质的区别,这就是为什么iOS有UIKit和UIView,而MacOS有APPKit和NSView...寄宿图 事实上,CALayer类能够包含一张喜欢的图片,layer中所包含的这张图片称为CALayer的寄宿图。...但是如果iOS中试图将UIImage类型的对象赋值给它,那么将得到一片空白。 事实上,真正要赋值的类型是CGImageRef,它是一个指向CGImage结构的指针。...,因为CGImageRef并不是一个真正的cocoa对象,而是CoreFoundation类型。

99620

BlocksKit初见:一个支持将delegate转换成block的Cocoa

简介 项目主页: https://github.com/zwaldowski/BlocksKit BlocksKit 是一个开源的框架,对 Cocoa 进行了扩展,将许多需要通过 delegate 调用的方法转换成了...很多情况下,blocks 比 delegate 要方便简单,因为 block 是紧凑的,可以使代码简洁,提高代码可读性,另外 block 还可以进行异步处理。使用 block 要注意避免循环引用。...alertView bk_addButtonWithTitle:@"确定" handler:nil]; [alertView bk_setDidDismissBlock:^(UIAlertView *alert, NSInteger...如果对象在这里动态添加了selector 的实现方法,则消息转发结束,否则执行步骤2 调用 - (id)forwardingTargetForSelector:(SEL)aSelector,在这里可以将消息转发给其他对象...,如果实现则消息转发结束,否则执行步骤3 执行完整的消息转发机制,调用-(void)forwardInvocation:(NSInvocation *)invocation 在这一步,可以修改消息的任何内容

1.3K100

TableView优化之高度缓存

因为最近公司的项目要上二版,然而我还没有提前完成他的决心,所以,懂得。 今天说点什么呢,恩,还是说说tabV相关的吧,之前的存货了。...转化我们的文件 这回finder中找到工程的文件夹,main.m同级文件夹下多了一个文件main.cpp,这就是转换完的文件。我们看到代码还是很多的。...从这你也应该知道为什么OC中叫发送消息,不叫函数调用了吧。 另外还应该知道为什么OC中方法只声明,不实现,编译时只报警不报错,运行时crash是为什么了吧。 既然说到这里就多少说一说C与OC吧。...不过老司机还是会一句一句给你说的,毕竟这才是老司机的风格,恩,就是墨迹。 恩,老司机先说一说重用的问题吧。 我们都喜欢用tableView,因为他很好的替我们做了内存控制的问题。...---- 常用套话了,这么贪幕虚荣的老司机不就图点个喜欢么=。=,觉得好点个喜欢吧。 转载记得附上链接。 http://www.jianshu.com/p/2b192257276f

2.3K30

NSInteger说开去

long NSUInteger; #else typedef int NSInteger; typedef unsigned int NSUInteger; #endif 这段定义是说如果程序是64位系统下运行的...简而言之,就是如果并不考虑位数对程序的影响或者说觉得并不能游刃有余的操作int和long,那么NSInteger是一个很安全的选择。 那么是不是说有了NSInteger就可以不用int了呢?...当你的变量值的范围在一个可控的范围内,使用int反而更合适,比如说,要保存一张手机照片的尺寸,那么几千的值是绝对够了的,于是用int也不会产生任何问题,而用NSInteger反而增加代码阅读难度。...毕竟int作为通用的基本类型很直观,相反的是NSInteger的代码往其他地方移植也会对别人产生困扰(是不是想太多了: D),而且,从效率上来讲,直接用int的效率还是略微要高一些的。...什么时候用NSInteger 其实在Apple的文档或者示例代码里,intNSInteger都会存在,大多数出现NSInteger函数的返回值上。

91510
领券