![iphone – 实例级计数器的NSNumber是否超标?,第1张 iphone – 实例级计数器的NSNumber是否超标?,第1张](/aiimages/iphone+%E2%80%93+%E5%AE%9E%E4%BE%8B%E7%BA%A7%E8%AE%A1%E6%95%B0%E5%99%A8%E7%9A%84NSNumber%E6%98%AF%E5%90%A6%E8%B6%85%E6%A0%87%EF%BC%9F.png)
概述我是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是否超标?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)