Существует ли проблема использования int для свойства класса? - PullRequest
0 голосов
/ 18 мая 2009

Когда я начинал с Cocoa, я помню, что где-то читал, что int / float и подобные не должны использоваться для свойств класса и для использования эквивалентов NS * (например, NSInteger).

Есть ли здесь реальная скрытая проблема, почему это было бы лучше, или это было просто добровольное правило кодирования человеком, где я читал это (и я не могу на всю жизнь найти, где это было)?

Итак, что лучше:

@interface xx... 
    int myProp;
@end

или

@interface xx... 
    NSInteger *myProp;
@end

Ответы [ 2 ]

2 голосов
/ 18 мая 2009

Версия int в порядке, но NSInteger предпочтительнее. NSInteger не является объектом и не должен ссылаться на него указателем - это просто typedef, который позволит переменной иметь собственный размер слова как на 32-битном, так и на 64-битном компьютере. Так что лучшим вариантом будет:

@interface SomeClass : NSObject {
    NSInteger aNumber;
@end

@implementation SomeClass
- (id)init {
    [super init];
    number = 42;
}
@end
0 голосов
/ 18 мая 2009

См. вопрос . NSInteger безопасен для архитектуры и рекомендуется с 10.5 года

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...