Просто?возвращая целое число в Objective C / Iphone - PullRequest
0 голосов
/ 17 марта 2011

Я ломал голову над довольно простой операцией, которую я делал в C ++.

Что я должен делать (я знаю, что код бессмыслен, поскольку мы знаем, что a = 10, ноэто понять мою точку зрения) псевдокод!:

.h:

int *a;
- (void) doSomeThingWithVariable;
- (int) returningVariable;

.m:

- (void) doSomeThingWithVariable
{
 int a=0;
       for (int i =0;i<10;i++)
       {
         a++;
       }
}
- (int) returningVariable
{
return a;
}

main:

int newA;
ClassName *myObject=[[ClassName alloc]init];

[myObject doSomeThingWithVariable];
newA=[myObject returningVariable];

Итак, я хочу, чтобы моя функция возвращала публичное целое число из моего класса.Это такая простая задача, которую я выполнял много раз, как на Java, так и на C ++, но постоянно получаю эту ошибку:

makes integer from pointer without a cast

или

return from incompatible pointer type

Я надеюсь, что кто-то может мне помочь, похоже, нигде нет помощи в этом вопросе (возможно, потому что это так просто :))

1 Ответ

2 голосов
/ 17 марта 2011

У вас есть int *a вместо int a.* Делает его указателем, поэтому возвращение из вашего метода «делает целое число из указателя без приведения».

Также обратите внимание, что «a», который вы объявили в -doSomethingWithVariable, является локальной переменной, инедоступно для вашего -returnVariable метода.-returnVariable возвращает глобальное 'a', которое вы объявили в качестве указателя в вашем .h файле.

Я думаю, что вы, вероятно, пытаетесь использовать переменную экземпляра в обоих методах.Переменная экземпляра будет доступна только внутри вашего класса и будет отличаться для каждого отдельного экземпляра класса и будет общей для всех методов в этом классе (для данного экземпляра).Вы хотите:

@interface MyClass : NSObject
{
    int a;
}
- (void)doSomethingWithVariable;
- (int)returnVariable;
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...