Если я прав, длина типа int
в Objective-C зависит от длины слова платформы (т. Е. Она равна 64 битам при работе в 64-битной среде и 32-битной при работе в 32-битной среде).
Однако при соединении интерфейса Objective C со Swift этот тип соединяется как Int32
, который явно определяет размер 32 бита.
Является ли это ошибкой, илиint
в Objective-C всегда занимает 32 бита? Если это не ошибка, почему он соединен как Int32
?
Пример интерфейса Objective-C
-(int)numberOfItems;
, который соединяется с:
func numberOfItems -> Int32
Когда я изменяю сигнатуру метода на использование NSInteger
, он правильно соединяется:
-(NSInteger)numberOfItems;
func numberOfItems -> Int
Есть ли опасность, если я изменю int
в Objective-Cк NSInteger
, или эти типы ведут себя точно так же в Objective-C?