Целые числа в приложении для iPhone - PullRequest
1 голос
/ 06 октября 2010

У меня в приложении есть кнопка с именем myButton, что мне делать очень просто. Я хочу иметь целое число, которое добавляет его к себе каждый раз при нажатии кнопки. Вот как выглядит код прямо сейчас:

- (IBAction)myButton {  
NSLog(@"Button was pushed WOHHOP");
}

Это внутри моего .m файла, так что мне нужно объявлять целое число внутри моего .h файла? Я просто хочу записать значение в этом действии кнопки, чтобы, нажимая его, я видел, как число увеличивается на единицу каждый раз.

Любой совет поможет, Спасибо!

Ответы [ 3 ]

5 голосов
/ 06 октября 2010

я бы по умолчанию использовал переменную экземпляра:

@interface MONClass : MONSuperClass
{
    NSUInteger clicks;
}

@end

@implementation MONClass

- (id)init {
    self = [super init];
    if (0 != self) {
        clicks = 0;
    }
    [return self];
}

- (IBAction)myButton:(id)sender
{
#pragma unused(sender)
    ++clicks;
    NSLog(@"Button was pushed %i times WOHHOP", clicks);
}
1 голос
/ 06 октября 2010

Третий вариант - просто использовать глобальную переменную. Объявите:

int counter = 0;

между импортом и реализацией в любом файле .m (но только в одном); объявить:

extern int counter;

в заголовке любого файла, где вы хотите использовать этот счетчик. И использовать:

counter++;

из любого места (любая функция, метод, объект или класс) и доступ к счетчику во всем приложении.

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

1 голос
/ 06 октября 2010

Вы также можете объявить статическую переменную:

- (IBAction)myButton {
    static NSUInteger counter = 0;
    counter++;
    NSLog(@"Button was pushed WOHHOP. Counter: %u", counter);
}

Но учтите, что в этом случае переменная counter будет использоваться всеми экземплярами этого класса. Это не может быть проблемой в этом случае, но это может сбить с толку. Реальная переменная экземпляра, как правило, лучше.

...