Могу ли я изменить (без знака) на (NSUInteger) или это создаст проблемы?
Я являюсь разработчиком программного обеспечения младшего, могу ли я просто поменять (без знака) на (NSUInteger) или буду создавать проблемы позже?
- (unsigned)retainCount
{
return UINT_MAX; //denotes an object that cannot be released
}
предупреждение сказал
MKStoreManager.m:88:1: Conflicting return type in implementation of 'retainCount': 'NSUInteger' (aka 'unsigned long') vs 'unsigned int'
Я нашел предыдущее определение
- (NSUInteger)retainCount OBJC_ARC_UNAVAILABLE;
1 ответ
Решение
Ваш метод должен вернуться NSUInteger
потому что так retainCount
метод определен в NSObject
,
Ошибка вызвана значением, которое вы пытаетесь вернуть. Вместо возвращения UINT_MAX
, вы должны вернуться NSUIntegerMax
,
Базовый тип для NSUInteger
меняется в зависимости от того, строится ли для 32 или 64 бит. Соответственно, стоимость NSUIntegerMax
также изменяется в соответствии с типом.
- (NSUInteger)retainCount
{
return NSUIntegerMax; //denotes an object that cannot be released
}