- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 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/
我有一个对象需要序列化为 EDI 格式。对于这个例子,我们假设它是一辆汽车。汽车可能不是 b/c 选项随时间变化的最佳示例,但对于真实对象,枚举永远不会改变。 我有很多像下面这样的应用了自定义属性的枚
我正在从 Beginning Javascript 学习 Javascript(很有趣!),书中的一个特定示例似乎有点矫枉过正。我知道他们有时会做一些严格来说不是最佳实践的事情 - 例如使用 docu
我应该使用 NSNumber 还是字符串来保存一个简单的“playerID 号码”,现在它是一个整数,因为我想用 Core Data 保存它? 在我的数据模型中,我将 playerID 设置为整数 1
我目前正在做一些网络相关的事情, public void postData() { HttpClient httpclient = new DefaultHttpClient(); HttpPost
我们正在建立一个我们可以使用的 Laravel 4 基础项目。我想创建一个默认路由规则,让开发人员可以轻松地创建新页面,而不必担心向 Controller 添加路由,但可以为任何更复杂的路由/ Con
已在所有 SO 帖子中努力搜索,但仍找不到答案。我的动画很长,很抱歉发了这么长的帖子! 它在 Chrome 上运行良好,但在 Firefox 30.0 上运行不正常,我不明白为什么。 我真的需要这么多
您好,我目前正在为我的项目使用 channel API。我的客户端是一个标牌播放器,它仅在用户更改媒体内容时才从 App Engine 服务器接收数据。 Appengine 每天只向客户端发送一次或两
我开始将 WebApi 和 OData 集成到测试平台应用程序中。让我们保持简单并坚持使用一个域实体 Customer。显然我会有一个 MVC Controller 。搜索得到它自己的 View 模型
两个问题合而为一... 对于实时视频处理应用程序,我有许多函数每帧调用多次。听取有关 const 和按引用传递的建议,这些函数的签名有点像这样 void processSomething(const
我是一名优秀的程序员,十分优秀!