iphone – 实例级计数器的NSNumber是否超标?

iphone – 实例级计数器的NSNumber是否超标?,第1张

概述我是Objective-C和 Cocoa的新手.我读过NSInteger和NSNumber是处理简单整数时的首选,因为它们是原始数字类型的“平台安全”版本(在NSNumber的情况下,包裹在一个对象中).所以,在NSTimer触发时,我需要一个计数器.在一个苹果论坛上,我发现一群人都推荐给类似情况的人,他们应该在标题中声明一个NSNumber指针,并用numberWithInt:初始化它,然后每次 我是Objective-C和 Cocoa的新手.我读过NSInteger和NSNumber是处理简单整数时的首选,因为它们是原始数字类型的“平台安全”版本(在NSNumber的情况下,包裹在一个对象中).所以,在NSTimer触发时,我需要一个计数器.在一个苹果论坛上,我发现一群人都推荐给类似情况的人,他们应该在标题中声明一个NSNumber指针,并用numberWithInt:初始化它,然后每次需要增加时,将它分配给一个新的对象(像counter = [NSNumber numberWithInt:[counter intValue] 1];).这看起来像对我来说太过分了.如果我需要的是一个int计数器(和btw,我将其重新设置为0,它命中15,所以大小不是一个问题),我不能只是使用一个int而不必分配每次迭代我的定时器循环的新对象?

如果是这样,我如何在我的课堂上提供一个原始类型.我知道使用对象类型,我在我的界面中声明它,并使用@property和@synthesize …使用原语时等同的(如果存在)是什么?

解决方法 使用NSNumber做一个简单的计数器看起来有点过分杀人.您可以将类成员声明为NSInteger,只需使用or =更新它们即可

例如:

@interface YourVIEwController : UIVIEwController  {NSInteger counter;      }@property (nonatomic,assign) NSInteger counter;

@synthesize只是:

@synthesize counter

并可以通过以下方式递增:

self.counter += 1;

要么

counter ++;

后来将阻止任何观察员被通知,因此可能不会更好.

总结

以上是内存溢出为你收集整理的iphone – 实例级计数器的NSNumber是否超标?全部内容,希望文章能够帮你解决iphone – 实例级计数器的NSNumber是否超标?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1019405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存