Следующая достаточно, так как assign
по умолчанию все равно:
@property (nonatomic) int foo;
Что касается NSInteger
против int
/long
: NSInteger
является предпочтительным, поскольку он удаляет вас от необходимости беспокоиться о том, что бит-архитектуру вы на, als Leejay уже упоминалось.
Я хочу дополнительно отметить, что использование NSInteger
делает его немного легче перейти к swift
в будущем, так как NSInteger
просто мостиком Int
, на самых «родных» типов данных. Если вы используете int
в Objective-C, вам нужно иметь дело с Int32
в быстром, то же самое для long
(Int64
). Просто становится беспорядочным и его можно легко избежать, используя NSInteger
для всех свойств и параметров метода или возвращаемых значений.