表达式的含义是什么:
-(someClass *)someName;
你会如何用简单的英语阅读/描述它?
为什么我们将 * 放在括号内,而不是在 someName 之前?
我们是通过这个 * 还是那个语法来分配一个对象?
这是“铸造”的案例吗?
铸造和返回指针之间有区别吗?
表达式的含义是什么:
-(someClass *)someName;
你会如何用简单的英语阅读/描述它?
为什么我们将 * 放在括号内,而不是在 someName 之前?
我们是通过这个 * 还是那个语法来分配一个对象?
这是“铸造”的案例吗?
铸造和返回指针之间有区别吗?
这就是方法返回值的 Objective-C 语义。
这个:
-(someClass *)someName;
意味着调用 someName 将返回指向 someClass 对象的指针。
例如:
someClass *myClass = self.someName;
将-
方法标识为实例方法,而 将+
方法标识为类方法。
返回数据类型是括号内的部分。您不能按值返回对象,因此您必须返回指向对象的指针,因此*
在括号内。您正在返回pointer
to someClass
。
方法名称的开头跟在括号后面。
你会调用这个方法someName
,它返回一个指向对象的指针someClass
,它是一个实例方法。
如果您要返回原始数据类型,则*
不需要,因为您可以返回原始数据类型。但是,您仍然可以返回指向原始数据类型的指针,在这种情况下,您需要*
.
例如:
-(int)someName; //returns an integer
-(int *)someOtherName; //returns a pointer to an integer