某些基础类(如NSString或NSArray)具有对该实例执行某些操作的实例方法,但从不要求将实例赋予该实例。例如:
NSArray * array = @ [@“hi”];
Int number = [array count];
count方法知道要计算哪个数组而不要求提供一个数组。怎么这样做?我正在寻找使用incrementByOne实例方法在NSString上创建一个类别。我不想在方法减速中要求字符串,我想知道我正在执行什么操作,就像count知道要处理哪个数组一样。如果有人能帮助我,我会非常感激。
答案 0 :(得分:0)
在你的例子中:
[array count];
您要将count
消息发送到名为array
的实例。消息发送到的实例由该表达式的array
部分确定。在方法定义中,您正在操作的实例由self
引用。在incrementByOne
示例中,实例方法可能会执行类似
- (NSInteger)incrementByOne
{
return [self length] + 1;
}
名称self
将引用该邮件发送到的任何实例。