2010-08-02 39 views
2

我创建了一个对象,它将有两个整数(或NSNumber s)和一个NSDate作为ivars。该对象将在NSMutableArray中。据我所知,我们不能将原生整数放入NSMutableArray,但我的对象是否会与int一起工作?我不想使用NSNumber的原因是因为这些必须是可变的,我不想每次都创建一个新的NSNumber我应该在iPhone/iPad课程中使用NSNumber还是int?

另外,会不会使用int来制造iphone架构差异的问题?

回答

2

1)您可以安全地将int作为ivars使用,因为它们被包装在另一个对象中。 NSNumber只是一个可用于不同数字类型的Cocoa类包装器。

2)为了安全起见,你可以使用NSUInteger,这是typedef ED这样的:

#if __LP64__ || NS_BUILD_32_LIKE_64 
typedef long NSInteger; 
typedef unsigned long NSUInteger; 
#else 
typedef int NSInteger; 
typedef unsigned int NSUInteger; 
#endif 

所以你会得到正确的类型用于当前架构。

+0

谢谢!我没有时间检查,因为我认为我已经找到了使用NSInteger的方法,但是我相信你知道你在说什么,并且如果NSInteger不工作,以后会尝试整数。 – user396004 2010-08-02 22:10:13