首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递增NSNumber

递增NSNumber
EN

Stack Overflow用户
提问于 2013-03-07 23:21:03
回答 3查看 3K关注 0票数 0

新来的obj-C和Cocoa

我试图在一个方法中增加一个变量,由于我习惯了C++,我只想使用variable++的术语,但是这在NSNumber上不起作用,所以我想出了

player1Points = [NSNumber numberWithInt:( player1Points intValue + 1) ];

我很想在头中将player1Points重新声明为int,但是我希望保留@合成和@属性,这样我就不必编写、获取和设置例程了。

有更简单的方法来编写这一行代码吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-07 23:23:31

您仍然可以声明它为NSInteger,属性也可能是原始类型:

代码语言:javascript
复制
@property (nonatomic,assign) NSInteger player1Points;

你仍然可以合成它。

另外,还有一种新的语法将使NSNumber的使用更加舒适:

代码语言:javascript
复制
player1Points = @(player1Points.integerValue+1);
票数 7
EN

Stack Overflow用户

发布于 2013-03-07 23:24:29

您可以使用原语作为属性,如下所示:

代码语言:javascript
复制
@property (nonatomic, assign) int player1Points;
票数 1
EN

Stack Overflow用户

发布于 2013-03-07 23:30:25

同意所有的答案,另一个选项(虽然可能是编码过度)是在NSNumber上创建一个类别,并使用一个名为a(或其他什么)的实例方法。这样你就可以在你的应用程序中的任何地方都有类似[player1Points increase];的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15283814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档