Должен ли я использовать NSNumber или int в классе iPhone / iPad? - PullRequest
2 голосов
/ 03 августа 2010

Я создаю объект, который будет иметь два целых числа (или NSNumber s) и NSDate в качестве иваров.Этот объект будет в NSMutableArray.Насколько мне известно, мы не можем поместить первичные целые числа в NSMutableArray, но будет ли мой объект работать с int s?Причина, по которой я не хочу использовать NSNumber s, заключается в том, что они должны быть изменяемыми, и я действительно не хочу создавать новый NSNumber каждый раз.

Кроме того, будет использоваться int s создают проблемы с различиями архитектуры iphone?

1 Ответ

2 голосов
/ 03 августа 2010

1) Вы можете безопасно использовать int как ivars, потому что они обернуты в другой объект.NSNumber - это просто оболочка класса Какао для различных числовых типов.

2) Чтобы быть в безопасности, вы можете использовать NSUInteger, что typedef выглядит следующим образом:

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

Таким образом, вы получите правильный тип для текущей архитектуры.

...