-4

表达式的含义是什么:

-(someClass *)someName; 

你会如何用简单的英语阅读/描述它?

为什么我们将 * 放在括号内,而不是在 someName 之前?

我们是通过这个 * 还是那个语法来分配一个对象?

这是“铸造”的案例吗?

铸造和返回指针之间有区别吗?

4

2 回答 2

2

这就是方法返回值的 Objective-C 语义。

这个:

-(someClass *)someName;

意味着调用 someName 将返回指向 someClass 对象的指针。

例如:

someClass *myClass = self.someName;
于 2013-10-11T15:35:49.367 回答
2

-方法标识为实例方法,而 将+方法标识为类方法。

返回数据类型是括号内的部分。您不能按值返回对象,因此您必须返回指向对象的指针,因此*在括号内。您正在返回pointerto someClass

方法名称的开头跟在括号后面。

你会调用这个方法someName,它返回一个指向对象的指针someClass,它是一个实例方法。

如果您要返回原始数据类型,则*不需要,因为您可以返回原始数据类型。但是,您仍然可以返回指向原始数据类型的指针,在这种情况下,您需要*.

例如:

-(int)someName; //returns an integer
-(int *)someOtherName; //returns a pointer to an integer
于 2013-10-11T15:36:57.540 回答