используйте оператор% в xcode - PullRequest
0 голосов
/ 01 декабря 2010

я пытаюсь сделать функцию, которая использует оператор% в цели c моя функция:

-(void) image1:(UIImageView *)img1 
        image10:(UIImageView *)img10 
        image100:(UIImageView *)img100 
        score:(NSInteger *)sc
{
        NSInteger* s100,s10,s1;

    s100 = sc % 100;
    s10 = (sc - s100 * 100) % 10;
    s1 = (sc - sc % 10);
    NSLog(@"%d",s1);
}

но я получил ошибки .. можете ли вы привести меня к какому-то решению

Ответы [ 2 ]

5 голосов
/ 01 декабря 2010

NSInteger является примитивным типом. В зависимости от среды это может быть typedef'd для 32-битного или 64-битного целого числа со знаком.

s100 декларация

NSInteger* s100

, поэтому s100 - указатель. Взятие модуля указателя неверно. Эта строка должна быть:

NSInteger s100,s10,s1;

И sc, вероятно, тоже должен быть NSInteger. Если вы действительно хотите передать указатель на NSInteger, вам нужно разыменовать его, когда вы делаете с ним арифметику:

s100 = *sc % 100;
s10 = (*sc - s100 * 100) % 10;
s1 = (*sc - *sc % 10);
1 голос
/ 01 декабря 2010

Вы не можете неявно создавать подобные объекты. Вы хотите, чтобы s100, s10, s1 и sc все были переменными в стиле C, но вы объявили s100 и sc в качестве указателей, как если бы они собирались содержать объекты Objective-C. Я предлагаю вам изменить NSInteger* на NSInteger в обоих случаях. Не все вещи, начинающиеся в NS, являются объектами.

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