Предупреждение "Возврат делает указатель из целого числа без приведения" - PullRequest
0 голосов
/ 15 января 2011

Почему у него есть предупреждение «Возвращает указатель из целого числа без приведения»?

У меня есть объект «Person», который содержит NSString и int.

-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
Person *thePerson = [theList objectAtIndex:row];
if (tableColumn == nameTableColumn)
    {
        return thePerson.theName;
    }
    else if (tableColumn == ageTableColumn)
    {
        return thePerson.theAge;
    }
    else
         return nil;
}

По какой-то причине переменная экземпляра Age получает предупреждение об указателях.Это странно, и я хочу знать почему.

Ответы [ 2 ]

1 голос
/ 15 января 2011

id является типом для универсального объекта и фактически является указателем (даже если вам не нужно объявлять его с помощью *).int не объект, и вы получаете предупреждение.Если вы хотите использовать этот метод, вы можете попробовать обернуть его в NSNumber:

-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
Person *thePerson = [theList objectAtIndex:row];
if (tableColumn == nameTableColumn)
    {
        return thePerson.theName;
    }
    else if (tableColumn == ageTableColumn)
    {
        return [NSNumber numberWithInt:thePerson.theAge];
    }
    else
         return nil;
}
0 голосов
/ 15 января 2011

int является типом значения, но id соответствует произвольному типу указателя Objective-C.

Вы можете обернуть int в NSNumber и вернуть это:

return [NSNumber numberWithInt:thePerson.theAge];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...