我是 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;
}
最佳答案
正如 Sagi 之前提到的,在这种情况下 [self generateAnimal];
会产生想要的效果。通常,Objective-C(与任何其他面向对象的语言一样)将方法附加到类/实例,因此您只能在现有实例上调用它们。 (明明还有类方法等,但更抽象的说)
Objective-C 希望您将这些方法调用括在方括号 ([ ]
) 中,如 Sagi 的回答和您自己的示例 ([super viewDidLoad]
)。所有调用都遵循此模式 [目标方法:参数]
。希望它有意义,只是想为 Sagi 的回答添加一些背景信息。
关于objective-c - iOS:方法和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056515/