gpt4 book ai didi

iphone - 实例级计数器的 NSNumber 是否矫枉过正?

转载 作者:太空狗 更新时间:2023-10-30 03:27:20 26 4
gpt4 key购买 nike

我是 Objective-C 和 Cocoa 的新手。我读过 NSInteger 和 NSNumber 在处理简单整数时是首选,因为它们是原始数字类型的“平台安全”版本(在 NSNumber 的情况下,包装在一个对象中)。所以,我需要在我的类中有一个计数器,它在 NSTimer 触发时递增。在 Apple 论坛上,我发现一群人都向处于类似情况的人推荐他们应该在 header 中声明一个 NSNumber 指针,用 numberWithInt: 初始化它,然后每次需要递增它时,通过将它分配给一个新对象(类似于 counter = [NSNumber numberWithInt:[counter intValue]+1];)。这对我来说太过分了。如果我只需要一个 int 计数器(顺便说一句,我会在它达到 15 后将其重置回 0,所以大小不是问题),难道我不能只使用 int 而不必分配一个我的计时器循环的每次迭代都有新对象?

如果是这样,我如何让原始类型在我的类里面可用。我知道对于对象类型,我在我的接口(interface)中声明它并使用@property 和@synthesize...在使用基元时有什么等效项(如果存在)?

最佳答案

使用 NSNumber 作为一个简单的计数器看起来有点过头了。您可以将类成员声明为 NSInteger 并使用++ 或 += 简单地更新它们

例如:

@interface YourViewController : UIViewController  {
NSInteger counter;
}

@property (nonatomic,assign) NSInteger counter;

@synthesize 只是:

@synthesize counter

并且可以增加:

self.counter += 1;

counter ++;

后者会阻止任何观察者被告知,因此可能不是可取的。

关于iphone - 实例级计数器的 NSNumber 是否矫枉过正?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/915341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com