iOS: методы и функции - PullRequest
       1

iOS: методы и функции

0 голосов
/ 30 января 2012

Я новичок в Objective-C, так что я могу быть далеко ...

У меня есть это в моем методе 'viewDidLoad':

NSArray *myArray;
NSString *cow = @"Cow";
NSString *pig = @"Pig";
NSString *frog = @"Frog";
NSString *sheep = @"Sheep";
myArray = [NSArray arrayWithObjects: cow, pig, frog, sheep, nil];
randomNumber.text = [myArray objectAtIndex: arc4random() % (4)];    

Я хочу сделатьэто его собственный метод, так что я могу получить случайное животное в любое время, когда захочу ... но мне нужно, чтобы это происходило при запуске программы.Как мне получить доступ к методу, подобному этому?

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

Например:

- (void)generateAnimal{
    NSArray *myArray;
    NSString *cow = @"Cow";
    NSString *pig = @"Pig";
    NSString *frog = @"Frog";
    NSString *sheep = @"Sheep";
    myArray = [NSArray arrayWithObjects: cow, pig, frog, sheep, nil];
    randomNumber.text = [myArray objectAtIndex: arc4random() % (4)];    
}

Также:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self generateAnimal;


}

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Как уже упоминал Саги, в этом случае [self generateAnimal]; даст желаемый эффект. В целом Objective-C (как и любой другой объектно-ориентированный язык) присоединяет методы к классам / экземплярам, ​​поэтому вы можете вызывать их только в существующих экземплярах. (Очевидно, есть методы класса и т. Д., Но более абстрактно)

Objective-C хочет, чтобы вы заключили эти вызовы в квадратные скобки ([ ]), как видно из ответа Саги и вашего собственного примера ([super viewDidLoad]). Все звонки следуют этой схеме [target method: parameter]. Надеюсь, это имеет смысл, просто хотел добавить немного контекста в ответ Саги.

1 голос
/ 30 января 2012
[self generateAnimal]; //would work great :)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...