什么是子程序和便利初始化程序?

时间:2012-05-19 04:43:47

标签: objective-c function initialization subroutine initializer

我大约8个月前开始学习编程,从C,OOP开始,现在开始学习iOS,这是我的目标。在大多数情况下,一切都很顺利,我已经开始通过在xcode上编写小应用程序来练习。它只是像子程序和便利初始化程序这样的小术语,有时会让我失望。任何人都可以为我定义这些条款,并给我一个快速的例子来说明它们的用法吗?在我的演示中,我没有必要使用它们,但我学习的讲座提到了它们,但是它们并没有很好地解释它们。在线这些条款的信息也不多。顺便说一下,我知道这些条款完全不相关

感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:2)

便利初始化程序是一个接受参数的程序,因此您可以使用nil以外的值初始化对象。

答案 1 :(得分:1)

Objective-C中的“子例程”称为method,它由一个说明符,一个返回值和参数组成。类方法只能发送到声明类,而实例方法需要调用实例。

示例类方法可能如下所示:

+(void)doMagicWithString:(NSString*)magicString;

简单地称为:

[MyDeclaringClass doMagicWithString:@"Example"];

+表示它的类方法状态,doMagicWithString:是方法的实际名称,magicString是它的参数。

示例实例方法可能如下所示

-(CFRabbit*)beVewyQuiet:(BOOL)quiet imHuntingWabbits:(CFHunter*)hunter;

在C中看起来像这样:

CFRabbit* beVewyQuiet(bool quiet, CFHunter* hunter);

此方法返回CFRabbit *类型的对象,并且只能由类的活动实例调用,如下所示:

[self.myInstanceOfDeclaringClass beVewyQuiet:YES imHuntingWabbits:nil];

“便利初始化程序”(便捷方法)只是一个用一个快速简单的类方法替换+alloc-init的消息。例如,NSArray+array方法返回一个空数组,或NSDictionary+dictionary方法返回一个空字典。

而在此之前,需要这样的信息:

myArray = [NSArray alloc] init]; //long and unnecessary