-1

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

任何帮助表示赞赏,谢谢

4

2 回答 2

2

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

于 2013-02-24T14:26:31.390 回答
1

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

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

+(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
于 2012-05-19T04:51:49.793 回答